From 628a76e487458b5e7a08a7a5f2bace1859eacb7c Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Fri, 9 Jan 2026 02:02:43 +0100 Subject: [PATCH 001/171] Simplified handling of Ports in MEP --- .../bonsai/bim/module/system/__init__.py | 3 + .../bonsai/bim/module/system/operator.py | 96 +++++++++- src/bonsai/bonsai/bim/module/system/prop.py | 60 +++++- src/bonsai/bonsai/bim/module/system/ui.py | 175 ++++++++++++------ src/bonsai/bonsai/core/system.py | 5 +- src/bonsai/bonsai/tool/system.py | 26 +++ 6 files changed, 300 insertions(+), 65 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/__init__.py b/src/bonsai/bonsai/bim/module/system/__init__.py index 92782ae6fe..4c805f282d 100644 --- a/src/bonsai/bonsai/bim/module/system/__init__.py +++ b/src/bonsai/bonsai/bim/module/system/__init__.py @@ -21,11 +21,13 @@ from . import ui, prop, operator, decorator classes = ( operator.AddPort, + operator.AddRelatedPortConnection, operator.AddSystem, operator.AddZone, operator.AssignSystem, operator.AssignUnassignFlowControl, operator.ConnectPort, + operator.CycleFlowDirection, operator.DisableEditingSystem, operator.DisableEditingZone, operator.DisableSystemEditingUI, @@ -43,6 +45,7 @@ classes = ( operator.RemoveZone, operator.SelectSystemProducts, operator.SetFlowDirection, + operator.ShowPortFlowError, operator.ShowPorts, operator.UnassignSystem, operator.UnloadZones, diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index add214c09d..9084f1a6b8 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -217,7 +217,7 @@ class HidePorts(bpy.types.Operator, tool.Ifc.Operator): class AddPort(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.add_port" - bl_description = "Add port at current cursor position" + bl_description = "Add USERDEFINED port at current cursor position" bl_label = "Add Port" bl_options = {"REGISTER", "UNDO"} @@ -249,6 +249,42 @@ class ConnectPort(bpy.types.Operator, tool.Ifc.Operator): core.connect_port(tool.Ifc, port1=tool.Ifc.get_entity(obj1), port2=tool.Ifc.get_entity(obj2)) +class AddRelatedPortConnection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.add_related_port_connection" + bl_label = "Connect Port" + bl_description = "Click to select a port to connect to" + bl_options = {"REGISTER", "UNDO"} + + element_id: bpy.props.IntProperty(default=0, options={"SKIP_SAVE"}) + + def invoke(self, context, event): + if self.element_id == 0: + self.report({'ERROR'}, "No port specified") + return {'CANCELLED'} + context.window_manager.modal_handler_add(self) + return {'RUNNING_MODAL'} + + def modal(self, context, event): + if event.type == 'LEFTMOUSE' and event.value == 'PRESS': + if context.active_object: + target_element = tool.Ifc.get_entity(context.active_object) + if target_element and target_element.is_a("IfcDistributionPort"): + source_element = tool.Ifc.get().by_id(self.element_id) + core.connect_port(tool.Ifc, port1=source_element, port2=target_element) + self.report({'INFO'}, "Ports connected") + return {'FINISHED'} + else: + self.report({'WARNING'}, "Selected object is not a port") + return {'RUNNING_MODAL'} + elif event.type in {'RIGHTMOUSE', 'ESC'}: + self.report({'INFO'}, "Cancelled") + return {'CANCELLED'} + return {'RUNNING_MODAL'} + + def _execute(self, context): + return {'CANCELLED'} + + class DisconnectPort(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.disconnect_port" bl_label = "Disconnect Ports" @@ -256,6 +292,9 @@ class DisconnectPort(bpy.types.Operator, tool.Ifc.Operator): element_id: bpy.props.IntProperty(default=0, options={"SKIP_SAVE"}) + def invoke(self, context, event): + return context.window_manager.invoke_confirm(self, event) + def _execute(self, context): if self.element_id != 0: element = tool.Ifc.get().by_id(self.element_id) @@ -379,6 +418,61 @@ class SetFlowDirection(bpy.types.Operator, tool.Ifc.Operator): return {"CANCELLED"} +class CycleFlowDirection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.cycle_flow_direction" + bl_label = "Cycle Flow Direction" + bl_options = {"REGISTER", "UNDO"} + port_id: bpy.props.IntProperty() + + @classmethod + def description(cls, context, operator): + try: + port = tool.Ifc.get().by_id(operator.port_id) + if port and port.is_a("IfcDistributionPort"): + current_direction = port.FlowDirection or "NOTDEFINED" + return f"Current flow direction: {current_direction}. Click to cycle: SOURCE → SINK → SOURCEANDSINK → NOTDEFINED" + except: + pass + return "Cycle through flow directions: SOURCE → SINK → SOURCEANDSINK → NOTDEFINED → SOURCE..." + + def _execute(self, context): + port = tool.Ifc.get().by_id(self.port_id) + if not port or not port.is_a("IfcDistributionPort"): + return {"CANCELLED"} + + current_direction = port.FlowDirection or "NOTDEFINED" + flow_cycle = ["SOURCE", "SINK", "SOURCEANDSINK", "NOTDEFINED"] + + try: + current_index = flow_cycle.index(current_direction) + next_direction = flow_cycle[(current_index + 1) % len(flow_cycle)] + except ValueError: + next_direction = "SOURCE" + + tool.Ifc.run("attribute.edit_attributes", product=port, attributes={"FlowDirection": next_direction}) + + PortData.is_loaded = False + + return {"FINISHED"} + + +class ShowPortFlowError(bpy.types.Operator): + bl_idname = "bim.show_port_flow_error" + bl_label = "" + bl_options = {"REGISTER"} + port_flow: bpy.props.StringProperty() + connected_flow: bpy.props.StringProperty() + + @classmethod + def description(cls, context, operator): + if operator.port_flow and operator.connected_flow: + return f"Semantic error: Incompatible flow directions ({operator.port_flow} connected to {operator.connected_flow})" + return "Semantic error: Incompatible flow directions" + + def execute(self, context): + return {"FINISHED"} + + class LoadZones(bpy.types.Operator): bl_idname = "bim.load_zones" bl_label = "Load Zones" diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index a603446c9f..6b82d650af 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -19,7 +19,8 @@ import bpy import bonsai.bim.handler import bonsai.tool as tool -from bonsai.bim.module.system.data import SystemData +import bonsai.core.system as core +from bonsai.bim.module.system.data import SystemData, PortData import bonsai.bim.module.system.decorator as decorator from bonsai.bim.prop import StrProperty, Attribute from bpy.types import PropertyGroup @@ -92,6 +93,56 @@ def toggle_decorations(self: "BIMSystemProperties", context: bpy.types.Context) decorator.SystemDecorator.uninstall() +def is_port_available_for_connection(self: "BIMSystemProperties", obj: bpy.types.Object) -> bool: + element = tool.Ifc.get_entity(obj) + if not element or not element.is_a("IfcDistributionPort"): + return False + connected_port = tool.System.get_connected_port(element) + if connected_port is not None: + return False + + if bpy.context.active_object: + active_element = tool.Ifc.get_entity(bpy.context.active_object) + if active_element: + active_ports = tool.System.get_ports(active_element) + if element in active_ports: + return False + + return True + + +def update_related_port_object(self: "BIMSystemProperties", context: bpy.types.Context) -> None: + if self.related_port_object is None: + return + if not context.active_object: + return + + source_element = tool.Ifc.get_entity(context.active_object) + target_element = tool.Ifc.get_entity(self.related_port_object) + + if not source_element or not target_element: + self.related_port_object = None + return + + if not target_element.is_a("IfcDistributionPort"): + self.related_port_object = None + return + + source_port = None + for port in tool.System.get_ports(source_element): + if not tool.System.get_connected_port(port): + source_port = port + break + + if not source_port: + self.related_port_object = None + return + + core.connect_port(tool.Ifc, port1=source_port, port2=target_element) + self.related_port_object = None + PortData.is_loaded = False + + class BIMSystemProperties(PropertyGroup): system_attributes: CollectionProperty(name="System Attributes", type=Attribute) is_editing: BoolProperty(name="Is Editing", default=False) @@ -107,6 +158,12 @@ class BIMSystemProperties(PropertyGroup): should_draw_decorations: BoolProperty( name="Should Draw Decorations", description="Toggle system decorations", update=toggle_decorations ) + related_port_object: PointerProperty( + type=bpy.types.Object, + name="Connect To Port", + update=update_related_port_object, + poll=is_port_available_for_connection, + ) if TYPE_CHECKING: system_attributes: bpy.types.bpy_prop_collection_idprop[Attribute] @@ -119,6 +176,7 @@ class BIMSystemProperties(PropertyGroup): edited_system_id: int system_class: str should_draw_decorations: bool + related_port_object: Union[bpy.types.Object, None] @property def active_system_ui_item(self) -> Union[System, None]: diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index 2d555f24c2..3574f95469 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -162,45 +162,75 @@ class BIM_PT_ports(Panel): if total_ports == 0: return - row = self.layout.row(align=True) - row.label(text="Change Flow Direction:") - - current_flow_direction = PortData.data["selected_objects_flow_direction"] - for flow_direction in FLOW_DIRECTION_TO_ICON.keys(): - row.operator( - "bim.set_flow_direction", - icon=FLOW_DIRECTION_TO_ICON[flow_direction], - depress=flow_direction == current_flow_direction, - text="", - ).direction = flow_direction - row.enabled = len(context.selected_objects) == 2 + props = tool.System.get_system_props() row = self.layout.row(align=True) - row.label(text="Ports located on object and connected objects:") + row.label(text="Ports located on object and connected Port/Objects:") + row = self.layout.row(align=True) - cols = [row.column(align=True) for i in range(6)] + cols = [row.column(align=True) for i in range(10)] for port_data in PortData.data["located_ports_data"]: flow_direction_icon = FLOW_DIRECTION_TO_ICON[port_data["FlowDirection"] or "NOTDEFINED"] - if port_data["port_obj_name"]: - cols[0].label(text="", icon=flow_direction_icon) - cols[1].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = port_data["id"] - cols[2].label(text=port_data["port_obj_name"]) + + if port_data["connected_obj_name"]: + cols[0].operator("bim.disconnect_port", text="", icon="UNLINKED").element_id = port_data["id"] + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = port_data["id"] else: - cols[0].label(text="", icon=flow_direction_icon) - cols[1].label(text="", icon="HIDE_ON") - cols[2].label(text="Port is hidden") + cols[0].label(text="", icon="BLANK1") + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = port_data["id"] + + # Port information + if port_data["port_obj_name"]: + cols[2].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = port_data["id"] + cols[3].label(text=port_data["port_obj_name"]) + else: + cols[2].label(text="", icon="HIDE_ON") + cols[3].label(text="Port is hidden") if port_data["connected_obj_name"]: connected_obj = bpy.data.objects[port_data["connected_obj_name"]] - cols[3].operator("bim.disconnect_port", text="", icon="UNLINKED").element_id = port_data["id"] + + port = tool.Ifc.get().by_id(port_data["id"]) + connected_port = tool.System.get_connected_port(port) + if connected_port: + connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] + op = cols[4].operator("bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True) + op.port_id = connected_port.id() + cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = connected_port.id() + connected_port_obj = tool.Ifc.get_object(connected_port) + cols[6].label(text=connected_port_obj.name if connected_port_obj else "Hidden Port") + else: + cols[4].label(text="", icon="BLANK1") + cols[5].label(text="", icon="BLANK1") + cols[6].label(text="") + ifc_id = tool.Blender.get_ifc_definition_id(connected_obj) - cols[4].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id - cols[5].label(text=port_data["connected_obj_name"]) + cols[7].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id + cols[8].label(text=port_data["connected_obj_name"]) + + if connected_port: + port_flow = port.FlowDirection or "NOTDEFINED" + connected_flow = connected_port.FlowDirection or "NOTDEFINED" + if (port_flow == "SOURCE" and connected_flow == "SOURCE") or \ + (port_flow == "SINK" and connected_flow == "SINK"): + op = cols[9].operator("bim.show_port_flow_error", text="", icon="ERROR", emboss=False) + op.port_flow = port_flow + op.connected_flow = connected_flow + else: + cols[9].label(text="", icon="BLANK1") + else: + cols[9].label(text="", icon="BLANK1") else: - cols[3].label(text="", icon="UNLINKED") cols[4].label(text="", icon="BLANK1") - cols[5].label(text="Port is disconnected") + cols[5].label(text="", icon="BLANK1") + cols[6].alignment = 'LEFT' + cols[6].prop(props, "related_port_object", text="") + cols[7].label(text="", icon="BLANK1") + cols[8].label(text="Port is disconnected") + cols[9].label(text="", icon="BLANK1") class BIM_PT_port(Panel): @@ -227,7 +257,12 @@ class BIM_PT_port(Panel): layout = self.layout row = layout.row(align=True) - row.label(text="IfcDistributionPort") + + if not PortData.is_loaded: + PortData.load() + + relating_object_name = PortData.data["port_relating_object_name"] if PortData.data["is_port"] else "" + row.label(text=f"IfcDistributionPort located in: {relating_object_name}") row.operator("bim.connect_port", icon="PLUGIN", text="") row.operator("bim.disconnect_port", icon="UNLINKED", text="") row.operator("bim.remove_port", icon="X", text="") @@ -239,41 +274,61 @@ class BIM_PT_port(Panel): return element = tool.Ifc.get_entity(context.active_object) - current_flow_direction = str(element.FlowDirection) + props = tool.System.get_system_props() + row = layout.row(align=True) - row.label(text="Flow Direction:") - row.label(text=current_flow_direction) - - # port located on - row = layout.row(align=True) - relating_object_name = PortData.data["port_relating_object_name"] - relating_object = bpy.data.objects[relating_object_name] - row.label(text="Port located on:") - row.label(text=relating_object_name) - ifc_id = tool.Blender.get_ifc_definition_id(relating_object) - row.operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id - - # object connected to the port - row = layout.row(align=True) - connected_object_name = PortData.data["port_connected_object_name"] - if connected_object_name: - connected_object = bpy.data.objects[connected_object_name] - row.label(text="Port connected to:") - row.label(text=connected_object_name) - ifc_id = tool.Blender.get_ifc_definition_id(connected_object) - row.operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id + cols = [row.column(align=True) for i in range(10)] + + flow_direction_icon = FLOW_DIRECTION_TO_ICON[element.FlowDirection or "NOTDEFINED"] + connected_port = tool.System.get_connected_port(element) + + if connected_port: + cols[0].operator("bim.disconnect_port", text="", icon="UNLINKED") + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = element.id() else: - row.label(text="Port is not connected to any element") - - row = layout.row(align=True) - row.label(text="Change Flow Direction:") - for flow_direction in FLOW_DIRECTION_TO_ICON.keys(): - row.operator( - "bim.set_flow_direction", - icon=FLOW_DIRECTION_TO_ICON[flow_direction], - depress=flow_direction == current_flow_direction, - text="", - ).direction = flow_direction + cols[0].label(text="", icon="BLANK1") + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = element.id() + + cols[2].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = element.id() + cols[3].label(text=context.active_object.name) + + if connected_port: + connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] + op = cols[4].operator("bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True) + op.port_id = connected_port.id() + cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = connected_port.id() + connected_port_obj = tool.Ifc.get_object(connected_port) + cols[6].label(text=connected_port_obj.name if connected_port_obj else "Hidden Port") + + connected_object_name = PortData.data["port_connected_object_name"] + if connected_object_name: + connected_obj = bpy.data.objects[connected_object_name] + ifc_id = tool.Blender.get_ifc_definition_id(connected_obj) + cols[7].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id + cols[8].label(text=connected_object_name) + else: + cols[7].label(text="", icon="BLANK1") + cols[8].label(text="") + + port_flow = element.FlowDirection or "NOTDEFINED" + connected_flow = connected_port.FlowDirection or "NOTDEFINED" + if (port_flow == "SOURCE" and connected_flow == "SOURCE") or \ + (port_flow == "SINK" and connected_flow == "SINK"): + op = cols[9].operator("bim.show_port_flow_error", text="", icon="ERROR", emboss=False) + op.port_flow = port_flow + op.connected_flow = connected_flow + else: + cols[9].label(text="", icon="BLANK1") + else: + cols[4].label(text="", icon="BLANK1") + cols[5].label(text="", icon="BLANK1") + cols[6].alignment = 'LEFT' + cols[6].prop(props, "related_port_object", text="") + cols[7].label(text="", icon="BLANK1") + cols[8].label(text="Port is disconnected") + cols[9].label(text="", icon="BLANK1") class BIM_PT_flow_controls(Panel): diff --git a/src/bonsai/bonsai/core/system.py b/src/bonsai/bonsai/core/system.py index fcdb95e72d..7a1df28280 100644 --- a/src/bonsai/bonsai/core/system.py +++ b/src/bonsai/bonsai/core/system.py @@ -123,9 +123,8 @@ def hide_ports(ifc: type[tool.Ifc], system: type[tool.System], element: ifcopens def add_port(ifc: type[tool.Ifc], system: type[tool.System], element: ifcopenshell.entity_instance) -> None: system.load_ports(element, system.get_ports(element)) - obj = system.create_empty_at_cursor_with_element_orientation(element) - port = system.run_root_assign_class(obj=obj, ifc_class="IfcDistributionPort", should_add_representation=False) - ifc.run("system.assign_port", element=element, port=port) + port = system.create_port_at_cursor(element) + system.load_ports(element, [port]) def remove_port(ifc: type[tool.Ifc], system: type[tool.System], port: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/tool/system.py b/src/bonsai/bonsai/tool/system.py index efaaa802c5..519136a1f8 100644 --- a/src/bonsai/bonsai/tool/system.py +++ b/src/bonsai/bonsai/tool/system.py @@ -107,6 +107,32 @@ class System(bonsai.core.tool.System): bpy.context.scene.collection.objects.link(obj) return obj + @classmethod + def create_port_at_cursor(cls, element: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance: + ifc_file = tool.Ifc.get() + element_obj = tool.Ifc.get_object(element) + + port = ifcopenshell.api.system.add_port(ifc_file, element=element) + port.FlowDirection = "NOTDEFINED" + port.PredefinedType = "USERDEFINED" + + systems = ifcopenshell.util.system.get_element_systems(element) + if systems: + system = systems[0] + if hasattr(system, "PredefinedType") and system.PredefinedType: + port.SystemType = system.PredefinedType + else: + port.SystemType = "USERDEFINED" + else: + port.SystemType = "USERDEFINED" + + matrix = element_obj.matrix_world.copy() + matrix.translation = bpy.context.scene.cursor.matrix.translation + + ifcopenshell.api.geometry.edit_object_placement(ifc_file, product=port, matrix=matrix, is_si=True) + + return port + @classmethod def delete_element_objects(cls, elements: list[ifcopenshell.entity_instance]) -> None: for element in elements: From 44632357286c09361204ebb104540623c61b8820 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Fri, 9 Jan 2026 08:43:46 +0100 Subject: [PATCH 002/171] Remove ShowPortFlowError operator and update flow direction handling for connected ports --- .../bonsai/bim/module/system/__init__.py | 1 - .../bonsai/bim/module/system/operator.py | 29 ++++++++----------- src/bonsai/bonsai/bim/module/system/ui.py | 29 ++----------------- 3 files changed, 14 insertions(+), 45 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/__init__.py b/src/bonsai/bonsai/bim/module/system/__init__.py index 4c805f282d..f44270cbe8 100644 --- a/src/bonsai/bonsai/bim/module/system/__init__.py +++ b/src/bonsai/bonsai/bim/module/system/__init__.py @@ -45,7 +45,6 @@ classes = ( operator.RemoveZone, operator.SelectSystemProducts, operator.SetFlowDirection, - operator.ShowPortFlowError, operator.ShowPorts, operator.UnassignSystem, operator.UnloadZones, diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 9084f1a6b8..80c15e9799 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -451,28 +451,23 @@ class CycleFlowDirection(bpy.types.Operator, tool.Ifc.Operator): tool.Ifc.run("attribute.edit_attributes", product=port, attributes={"FlowDirection": next_direction}) + connected_port = tool.System.get_connected_port(port) + if connected_port: + # Map flow direction to connected port's complementary direction + connected_direction_map = { + "SOURCE": "SINK", + "SINK": "SOURCE", + "SOURCEANDSINK": "SOURCEANDSINK", + "NOTDEFINED": "NOTDEFINED" + } + connected_direction = connected_direction_map.get(next_direction, "NOTDEFINED") + tool.Ifc.run("attribute.edit_attributes", product=connected_port, attributes={"FlowDirection": connected_direction}) + PortData.is_loaded = False return {"FINISHED"} -class ShowPortFlowError(bpy.types.Operator): - bl_idname = "bim.show_port_flow_error" - bl_label = "" - bl_options = {"REGISTER"} - port_flow: bpy.props.StringProperty() - connected_flow: bpy.props.StringProperty() - - @classmethod - def description(cls, context, operator): - if operator.port_flow and operator.connected_flow: - return f"Semantic error: Incompatible flow directions ({operator.port_flow} connected to {operator.connected_flow})" - return "Semantic error: Incompatible flow directions" - - def execute(self, context): - return {"FINISHED"} - - class LoadZones(bpy.types.Operator): bl_idname = "bim.load_zones" bl_label = "Load Zones" diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index 3574f95469..24907f8650 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -168,7 +168,7 @@ class BIM_PT_ports(Panel): row.label(text="Ports located on object and connected Port/Objects:") row = self.layout.row(align=True) - cols = [row.column(align=True) for i in range(10)] + cols = [row.column(align=True) for i in range(9)] for port_data in PortData.data["located_ports_data"]: flow_direction_icon = FLOW_DIRECTION_TO_ICON[port_data["FlowDirection"] or "NOTDEFINED"] @@ -210,19 +210,6 @@ class BIM_PT_ports(Panel): ifc_id = tool.Blender.get_ifc_definition_id(connected_obj) cols[7].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id cols[8].label(text=port_data["connected_obj_name"]) - - if connected_port: - port_flow = port.FlowDirection or "NOTDEFINED" - connected_flow = connected_port.FlowDirection or "NOTDEFINED" - if (port_flow == "SOURCE" and connected_flow == "SOURCE") or \ - (port_flow == "SINK" and connected_flow == "SINK"): - op = cols[9].operator("bim.show_port_flow_error", text="", icon="ERROR", emboss=False) - op.port_flow = port_flow - op.connected_flow = connected_flow - else: - cols[9].label(text="", icon="BLANK1") - else: - cols[9].label(text="", icon="BLANK1") else: cols[4].label(text="", icon="BLANK1") cols[5].label(text="", icon="BLANK1") @@ -230,7 +217,6 @@ class BIM_PT_ports(Panel): cols[6].prop(props, "related_port_object", text="") cols[7].label(text="", icon="BLANK1") cols[8].label(text="Port is disconnected") - cols[9].label(text="", icon="BLANK1") class BIM_PT_port(Panel): @@ -277,7 +263,7 @@ class BIM_PT_port(Panel): props = tool.System.get_system_props() row = layout.row(align=True) - cols = [row.column(align=True) for i in range(10)] + cols = [row.column(align=True) for i in range(9)] flow_direction_icon = FLOW_DIRECTION_TO_ICON[element.FlowDirection or "NOTDEFINED"] connected_port = tool.System.get_connected_port(element) @@ -311,16 +297,6 @@ class BIM_PT_port(Panel): else: cols[7].label(text="", icon="BLANK1") cols[8].label(text="") - - port_flow = element.FlowDirection or "NOTDEFINED" - connected_flow = connected_port.FlowDirection or "NOTDEFINED" - if (port_flow == "SOURCE" and connected_flow == "SOURCE") or \ - (port_flow == "SINK" and connected_flow == "SINK"): - op = cols[9].operator("bim.show_port_flow_error", text="", icon="ERROR", emboss=False) - op.port_flow = port_flow - op.connected_flow = connected_flow - else: - cols[9].label(text="", icon="BLANK1") else: cols[4].label(text="", icon="BLANK1") cols[5].label(text="", icon="BLANK1") @@ -328,7 +304,6 @@ class BIM_PT_port(Panel): cols[6].prop(props, "related_port_object", text="") cols[7].label(text="", icon="BLANK1") cols[8].label(text="Port is disconnected") - cols[9].label(text="", icon="BLANK1") class BIM_PT_flow_controls(Panel): From ed7ae0da9c286f63af05ff1d5ee05b71f70729ab Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Fri, 9 Jan 2026 13:18:01 +0100 Subject: [PATCH 003/171] Enhance show_ports (also shows ports of connected objects) and refine UI layout --- .../bonsai/bim/module/system/operator.py | 15 +++++- src/bonsai/bonsai/bim/module/system/prop.py | 7 +-- src/bonsai/bonsai/bim/module/system/ui.py | 54 ++++++++++++++----- 3 files changed, 57 insertions(+), 19 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 80c15e9799..e60f4500ec 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -186,6 +186,7 @@ class ShowPorts(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.show_ports" bl_label = "Show Ports" bl_options = {"REGISTER", "UNDO"} + element_id: bpy.props.IntProperty(default=0, options={"SKIP_SAVE"}) @classmethod def poll(cls, context): @@ -198,7 +199,19 @@ class ShowPorts(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): # Ifc.Operator - as operator will sync object's position with IFC. - core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=tool.Ifc.get_entity(context.active_object)) + if self.element_id != 0: + element = tool.Ifc.get().by_id(self.element_id) + else: + element = tool.Ifc.get_entity(context.active_object) + core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=element) + + for port in tool.System.get_ports(element): + connected_port = tool.System.get_connected_port(port) + if connected_port: + connected_port_obj = tool.Ifc.get_object(connected_port) + if not connected_port_obj: + parent_element = tool.System.get_port_relating_element(connected_port) + core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=parent_element) class HidePorts(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index 6b82d650af..09d9bf5e38 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -121,11 +121,9 @@ def update_related_port_object(self: "BIMSystemProperties", context: bpy.types.C target_element = tool.Ifc.get_entity(self.related_port_object) if not source_element or not target_element: - self.related_port_object = None return if not target_element.is_a("IfcDistributionPort"): - self.related_port_object = None return source_port = None @@ -135,11 +133,9 @@ def update_related_port_object(self: "BIMSystemProperties", context: bpy.types.C break if not source_port: - self.related_port_object = None return core.connect_port(tool.Ifc, port1=source_port, port2=target_element) - self.related_port_object = None PortData.is_loaded = False @@ -161,8 +157,9 @@ class BIMSystemProperties(PropertyGroup): related_port_object: PointerProperty( type=bpy.types.Object, name="Connect To Port", - update=update_related_port_object, + description="Select a port to connect to. Use eyedropper to pick a port object", poll=is_port_available_for_connection, + update=update_related_port_object, ) if TYPE_CHECKING: diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index 24907f8650..dee872b463 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -169,6 +169,9 @@ class BIM_PT_ports(Panel): row = self.layout.row(align=True) cols = [row.column(align=True) for i in range(9)] + cols[3].scale_x = 1.0 + cols[6].scale_x = 1.0 + cols[8].scale_x = 1.33 for port_data in PortData.data["located_ports_data"]: flow_direction_icon = FLOW_DIRECTION_TO_ICON[port_data["FlowDirection"] or "NOTDEFINED"] @@ -178,7 +181,9 @@ class BIM_PT_ports(Panel): op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = port_data["id"] else: - cols[0].label(text="", icon="BLANK1") + blank0 = cols[0].column(align=True) + blank0.scale_x = 0.1 + blank0.label(text="", icon="BLANK1") op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = port_data["id"] @@ -196,26 +201,49 @@ class BIM_PT_ports(Panel): port = tool.Ifc.get().by_id(port_data["id"]) connected_port = tool.System.get_connected_port(port) if connected_port: - connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] - op = cols[4].operator("bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True) - op.port_id = connected_port.id() - cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = connected_port.id() connected_port_obj = tool.Ifc.get_object(connected_port) - cols[6].label(text=connected_port_obj.name if connected_port_obj else "Hidden Port") + if connected_port_obj: + connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] + op = cols[4].operator("bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True) + op.port_id = connected_port.id() + cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = connected_port.id() + cols[6].label(text=connected_port_obj.name) + else: + blank4 = cols[4].column(align=True) + blank4.scale_x = 0.1 + blank4.label(text="", icon="BLANK1") + blank5 = cols[5].column(align=True) + blank5.scale_x = 0.1 + blank5.label(text="", icon="BLANK1") + cols[6].label(text="Port is hidden") else: - cols[4].label(text="", icon="BLANK1") - cols[5].label(text="", icon="BLANK1") + blank4 = cols[4].column(align=True) + blank4.scale_x = 0.1 + blank4.label(text="", icon="BLANK1") + blank5 = cols[5].column(align=True) + blank5.scale_x = 0.1 + blank5.label(text="", icon="BLANK1") cols[6].label(text="") ifc_id = tool.Blender.get_ifc_definition_id(connected_obj) cols[7].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id cols[8].label(text=port_data["connected_obj_name"]) else: - cols[4].label(text="", icon="BLANK1") - cols[5].label(text="", icon="BLANK1") - cols[6].alignment = 'LEFT' - cols[6].prop(props, "related_port_object", text="") - cols[7].label(text="", icon="BLANK1") + blank4 = cols[4].column(align=True) + blank4.scale_x = 0.1 + blank4.label(text="", icon="BLANK1") + blank5 = cols[5].column(align=True) + blank5.scale_x = 0.1 + blank5.label(text="", icon="BLANK1") + + col6_row = cols[6].row(align=True) + col6_row.alignment = 'LEFT' + col6_row.prop(props, "related_port_object", text="", icon='OBJECT_DATA') + col6_row.scale_x = 0.35 + + blank7 = cols[7].column(align=True) + blank7.scale_x = 0.1 + blank7.label(text="", icon="BLANK1") cols[8].label(text="Port is disconnected") From c41496a9c3f1178f3804e68f3bb1d3be577c8b25 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Fri, 9 Jan 2026 17:11:02 +0100 Subject: [PATCH 004/171] import IfcDistributionPorts with assets when executing append_library_element and for type products, use the type product's collection, not the container --- src/bonsai/bonsai/tool/system.py | 21 ++++++++++++++----- .../ifcopenshell/api/project/append_asset.py | 7 ++++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/bonsai/bonsai/tool/system.py b/src/bonsai/bonsai/tool/system.py index 519136a1f8..38a93a3649 100644 --- a/src/bonsai/bonsai/tool/system.py +++ b/src/bonsai/bonsai/tool/system.py @@ -218,11 +218,22 @@ class System(bonsai.core.tool.System): ifc_importer.process_context_filter() ifc_importer.create_generic_elements(set(ports_to_create)) - container = ifcopenshell.util.element.get_container(element) - if container: - collection = tool.Blender.get_object_bim_props(tool.Ifc.get_object(container)).collection - ifc_importer.collections[container.GlobalId] = collection - ifc_importer.place_objects_in_collections() + if element.is_a("IfcTypeProduct"): + target_collection = None + for collection in obj.users_collection: + target_collection = collection + break + + if target_collection: + for port_obj in ifc_importer.added_data.values(): + if isinstance(port_obj, bpy.types.Object): + tool.Collector.link_collection_object_safe(target_collection, port_obj) + else: + container = ifcopenshell.util.element.get_container(element) + if container: + collection = tool.Blender.get_object_bim_props(tool.Ifc.get_object(container)).collection + ifc_importer.collections[container.GlobalId] = collection + ifc_importer.place_objects_in_collections() for port_obj in ifc_importer.added_data.values(): assert isinstance(port_obj, bpy.types.Object) diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 893b32cc02..0b703b6064 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -381,6 +381,7 @@ class Usecase: def append_type_product(self): self.whitelisted_inverse_attributes = { "IfcObjectDefinition": ["HasAssociations"], + "IfcDistributionElementType": ["IsNestedBy"], self.base_material_class: ["HasExternalReferences", "HasProperties", "HasRepresentation"], "IfcRepresentationItem": ["StyledByItem", "LayerAssignment"], "IfcRepresentation": ["LayerAssignments"], @@ -397,6 +398,7 @@ class Usecase: "IfcObjectDefinition": ["HasAssociations"], "IfcObject": ["IsDefinedBy.IfcRelDefinesByProperties"], "IfcElement": ["HasOpenings"], + "IfcDistributionElement": ["IsNestedBy"], self.base_material_class: ["HasExternalReferences", "HasProperties", "HasRepresentation"], "IfcRepresentationItem": [ "StyledByItem", @@ -488,7 +490,8 @@ class Usecase: attribute_class = None if "." in attribute: attribute, attribute_class = attribute.split(".") - for inverse in getattr(element, attribute, []): + inverse_values = getattr(element, attribute, []) + for inverse in inverse_values: if attribute_class and inverse.is_a(attribute_class): self.add_inverse_element(inverse) elif not attribute_class: @@ -569,6 +572,8 @@ class Usecase: return False elif element.is_a("IfcRoot") and self.by_guid(element.GlobalId) is not None: return False + elif element.is_a("IfcDistributionPort"): + return False elif element.is_a(self.target_class): return True elif self.target_class == "IfcProduct" and element.is_a("IfcTypeProduct"): From dfbaa6ac8ee368d5b178919a3340aaa9962c331b Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Fri, 9 Jan 2026 17:39:42 +0100 Subject: [PATCH 005/171] Reset related_port_object to None after connecting ports --- src/bonsai/bonsai/bim/module/system/prop.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index 09d9bf5e38..6e9681694b 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -137,6 +137,7 @@ def update_related_port_object(self: "BIMSystemProperties", context: bpy.types.C core.connect_port(tool.Ifc, port1=source_port, port2=target_element) PortData.is_loaded = False + self.related_port_object = None class BIMSystemProperties(PropertyGroup): From 7ef11361b0625b8e1e32432a60b86eca76ba058c Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Sat, 10 Jan 2026 10:12:25 +0100 Subject: [PATCH 006/171] Update flow direction icons for ports in UI --- src/bonsai/bonsai/bim/module/system/ui.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index dee872b463..6e71e5486f 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -30,10 +30,10 @@ if TYPE_CHECKING: FLOW_DIRECTION_TO_ICON = { - "SOURCE": "FORWARD", - "SINK": "BACK", - "SOURCEANDSINK": "ARROW_LEFTRIGHT", - "NOTDEFINED": "CHECKBOX_DEHLT", + "SOURCE": "FULLSCREEN_ENTER", + "SINK": "FULLSCREEN_EXIT", + "SOURCEANDSINK": "CHECKBOX_DEHLT", + "NOTDEFINED": "QUESTION", } From 0243519a68445eab760d68b954b1abd7ed8933f5 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Sun, 11 Jan 2026 14:22:58 +0100 Subject: [PATCH 007/171] Refactor port connection logic and UI integration for improved usability --- .../bonsai/bim/module/system/operator.py | 64 ++++++++--------- src/bonsai/bonsai/bim/module/system/prop.py | 71 ++++++------------- src/bonsai/bonsai/bim/module/system/ui.py | 14 ++-- src/bonsai/bonsai/tool/system.py | 10 +-- 4 files changed, 58 insertions(+), 101 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index e60f4500ec..7f298064fc 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -265,37 +265,31 @@ class ConnectPort(bpy.types.Operator, tool.Ifc.Operator): class AddRelatedPortConnection(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.add_related_port_connection" bl_label = "Connect Port" - bl_description = "Click to select a port to connect to" bl_options = {"REGISTER", "UNDO"} - - element_id: bpy.props.IntProperty(default=0, options={"SKIP_SAVE"}) - + + relating_port_id: bpy.props.IntProperty() + def invoke(self, context, event): - if self.element_id == 0: - self.report({'ERROR'}, "No port specified") - return {'CANCELLED'} - context.window_manager.modal_handler_add(self) - return {'RUNNING_MODAL'} - - def modal(self, context, event): - if event.type == 'LEFTMOUSE' and event.value == 'PRESS': - if context.active_object: - target_element = tool.Ifc.get_entity(context.active_object) - if target_element and target_element.is_a("IfcDistributionPort"): - source_element = tool.Ifc.get().by_id(self.element_id) - core.connect_port(tool.Ifc, port1=source_element, port2=target_element) - self.report({'INFO'}, "Ports connected") - return {'FINISHED'} - else: - self.report({'WARNING'}, "Selected object is not a port") - return {'RUNNING_MODAL'} - elif event.type in {'RIGHTMOUSE', 'ESC'}: - self.report({'INFO'}, "Cancelled") - return {'CANCELLED'} - return {'RUNNING_MODAL'} - + return context.window_manager.invoke_props_dialog(self) + + def draw(self, context): + props = tool.System.get_system_props() + self.layout.prop(props, "related_port", text="Select Port") + def _execute(self, context): - return {'CANCELLED'} + props = tool.System.get_system_props() + + if not props.related_port or props.related_port == "NONE": + return {"CANCELLED"} + + port_obj = bpy.data.objects.get(props.related_port) + related_port = tool.Ifc.get_entity(port_obj) + relating_port = tool.Ifc.get().by_id(self.relating_port_id) + + core.connect_port(tool.Ifc, port1=relating_port, port2=related_port) + PortData.is_loaded = False + + return {"FINISHED"} class DisconnectPort(bpy.types.Operator, tool.Ifc.Operator): @@ -454,19 +448,19 @@ class CycleFlowDirection(bpy.types.Operator, tool.Ifc.Operator): return {"CANCELLED"} current_direction = port.FlowDirection or "NOTDEFINED" - flow_cycle = ["SOURCE", "SINK", "SOURCEANDSINK", "NOTDEFINED"] - try: - current_index = flow_cycle.index(current_direction) - next_direction = flow_cycle[(current_index + 1) % len(flow_cycle)] - except ValueError: - next_direction = "SOURCE" + flow_cycle_map = { + "SOURCE": "SINK", + "SINK": "SOURCEANDSINK", + "SOURCEANDSINK": "NOTDEFINED", + "NOTDEFINED": "SOURCE" + } + next_direction = flow_cycle_map.get(current_direction, "SOURCE") tool.Ifc.run("attribute.edit_attributes", product=port, attributes={"FlowDirection": next_direction}) connected_port = tool.System.get_connected_port(port) if connected_port: - # Map flow direction to connected port's complementary direction connected_direction_map = { "SOURCE": "SINK", "SINK": "SOURCE", diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index 6e9681694b..bb72fda1a9 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -34,7 +34,7 @@ from bpy.props import ( FloatVectorProperty, CollectionProperty, ) -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Union, Optional def get_system_class(self: "BIMSystemProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: @@ -93,51 +93,24 @@ def toggle_decorations(self: "BIMSystemProperties", context: bpy.types.Context) decorator.SystemDecorator.uninstall() -def is_port_available_for_connection(self: "BIMSystemProperties", obj: bpy.types.Object) -> bool: - element = tool.Ifc.get_entity(obj) - if not element or not element.is_a("IfcDistributionPort"): - return False - connected_port = tool.System.get_connected_port(element) - if connected_port is not None: - return False +def get_available_ports_for_connection(self: "BIMSystemProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: + items = [] + active_object_ports = set(tool.System.get_ports(tool.Ifc.get_entity(context.active_object))) - if bpy.context.active_object: - active_element = tool.Ifc.get_entity(bpy.context.active_object) - if active_element: - active_ports = tool.System.get_ports(active_element) - if element in active_ports: - return False + ifc_file = tool.Ifc.get() + for ifc_port in ifc_file.by_type("IfcDistributionPort"): + port = tool.Ifc.get_object(ifc_port) + if not port: + continue + + if tool.System.get_connected_port(ifc_port) is not None or ifc_port in active_object_ports: + continue + + port_object = tool.Ifc.get_object(tool.System.get_port_relating_element(ifc_port)) + suggestion = f"{port_object.name} > {port.name}" + items.append((port.name, suggestion, "")) - return True - - -def update_related_port_object(self: "BIMSystemProperties", context: bpy.types.Context) -> None: - if self.related_port_object is None: - return - if not context.active_object: - return - - source_element = tool.Ifc.get_entity(context.active_object) - target_element = tool.Ifc.get_entity(self.related_port_object) - - if not source_element or not target_element: - return - - if not target_element.is_a("IfcDistributionPort"): - return - - source_port = None - for port in tool.System.get_ports(source_element): - if not tool.System.get_connected_port(port): - source_port = port - break - - if not source_port: - return - - core.connect_port(tool.Ifc, port1=source_port, port2=target_element) - PortData.is_loaded = False - self.related_port_object = None + return items if items else [("NONE", "Ports are hidden or not available", "")] class BIMSystemProperties(PropertyGroup): @@ -155,12 +128,10 @@ class BIMSystemProperties(PropertyGroup): should_draw_decorations: BoolProperty( name="Should Draw Decorations", description="Toggle system decorations", update=toggle_decorations ) - related_port_object: PointerProperty( - type=bpy.types.Object, + related_port: EnumProperty( name="Connect To Port", - description="Select a port to connect to. Use eyedropper to pick a port object", - poll=is_port_available_for_connection, - update=update_related_port_object, + description="Select a port to connect to", + items=get_available_ports_for_connection, ) if TYPE_CHECKING: @@ -174,7 +145,7 @@ class BIMSystemProperties(PropertyGroup): edited_system_id: int system_class: str should_draw_decorations: bool - related_port_object: Union[bpy.types.Object, None] + related_port: str @property def active_system_ui_item(self) -> Union[System, None]: diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index 6e71e5486f..c4b142c31f 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -181,9 +181,8 @@ class BIM_PT_ports(Panel): op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = port_data["id"] else: - blank0 = cols[0].column(align=True) - blank0.scale_x = 0.1 - blank0.label(text="", icon="BLANK1") + op = cols[0].operator("bim.add_related_port_connection", text="", icon='PLUGIN') + op.relating_port_id = port_data["id"] op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = port_data["id"] @@ -236,15 +235,14 @@ class BIM_PT_ports(Panel): blank5.scale_x = 0.1 blank5.label(text="", icon="BLANK1") - col6_row = cols[6].row(align=True) - col6_row.alignment = 'LEFT' - col6_row.prop(props, "related_port_object", text="", icon='OBJECT_DATA') - col6_row.scale_x = 0.35 + cols[6].label(text="Port is disconnected") blank7 = cols[7].column(align=True) blank7.scale_x = 0.1 blank7.label(text="", icon="BLANK1") - cols[8].label(text="Port is disconnected") + blank8 = cols[8].column(align=True) + blank8.scale_x = 0.1 + blank8.label(text="", icon="BLANK1") class BIM_PT_port(Panel): diff --git a/src/bonsai/bonsai/tool/system.py b/src/bonsai/bonsai/tool/system.py index 38a93a3649..0236b40fbd 100644 --- a/src/bonsai/bonsai/tool/system.py +++ b/src/bonsai/bonsai/tool/system.py @@ -117,14 +117,8 @@ class System(bonsai.core.tool.System): port.PredefinedType = "USERDEFINED" systems = ifcopenshell.util.system.get_element_systems(element) - if systems: - system = systems[0] - if hasattr(system, "PredefinedType") and system.PredefinedType: - port.SystemType = system.PredefinedType - else: - port.SystemType = "USERDEFINED" - else: - port.SystemType = "USERDEFINED" + system = systems[0] if systems else None + port.SystemType = getattr(system, "PredefinedType", None) or "USERDEFINED" matrix = element_obj.matrix_world.copy() matrix.translation = bpy.context.scene.cursor.matrix.translation From e5ccd26762fe03b56e2a874da91880edfeb46d62 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Sun, 11 Jan 2026 14:46:17 +0100 Subject: [PATCH 008/171] Update port UI to indicate disconnection status more clearly --- src/bonsai/bonsai/bim/module/system/ui.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index c4b142c31f..ad8d5b5c03 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -326,10 +326,9 @@ class BIM_PT_port(Panel): else: cols[4].label(text="", icon="BLANK1") cols[5].label(text="", icon="BLANK1") - cols[6].alignment = 'LEFT' - cols[6].prop(props, "related_port_object", text="") + cols[6].label(text="Port is disconnected") cols[7].label(text="", icon="BLANK1") - cols[8].label(text="Port is disconnected") + cols[8].label(text="") class BIM_PT_flow_controls(Panel): From 1eb2b65268989a072bb994a73821c4ed7c2f1a51 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Mon, 12 Jan 2026 12:19:13 +0100 Subject: [PATCH 009/171] Add flow direction handling to port connection logic and UI updates --- src/bonsai/bonsai/bim/module/system/operator.py | 9 ++++++--- src/bonsai/bonsai/bim/module/system/prop.py | 4 ++-- src/bonsai/bonsai/bim/module/system/ui.py | 7 ++++--- src/bonsai/bonsai/core/system.py | 4 ++-- .../ifcopenshell/api/system/disconnect_port.py | 2 -- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 7f298064fc..049307b32f 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -259,7 +259,8 @@ class ConnectPort(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): obj1 = context.active_object obj2 = context.selected_objects[0] if context.selected_objects[1] == obj1 else context.selected_objects[1] - core.connect_port(tool.Ifc, port1=tool.Ifc.get_entity(obj1), port2=tool.Ifc.get_entity(obj2)) + direction = tool.Ifc.get_entity(obj1).FlowDirection or "NOTDEFINED" + core.connect_port(tool.Ifc, port1=tool.Ifc.get_entity(obj1), port2=tool.Ifc.get_entity(obj2), direction=direction) class AddRelatedPortConnection(bpy.types.Operator, tool.Ifc.Operator): @@ -286,7 +287,8 @@ class AddRelatedPortConnection(bpy.types.Operator, tool.Ifc.Operator): related_port = tool.Ifc.get_entity(port_obj) relating_port = tool.Ifc.get().by_id(self.relating_port_id) - core.connect_port(tool.Ifc, port1=relating_port, port2=related_port) + direction = relating_port.FlowDirection or "NOTDEFINED" + core.connect_port(tool.Ifc, port1=relating_port, port2=related_port, direction=direction) PortData.is_loaded = False return {"FINISHED"} @@ -356,7 +358,8 @@ class MEPConnectElements(bpy.types.Operator, tool.Ifc.Operator): ports_distance[(port1, port2)] = distance closest_ports = min(ports_distance, key=lambda x: ports_distance[x]) - core.connect_port(tool.Ifc, *closest_ports) + direction = closest_ports[0].FlowDirection or "NOTDEFINED" + core.connect_port(tool.Ifc, *closest_ports, direction=direction) bpy.ops.bim.regenerate_distribution_element() return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index bb72fda1a9..e4e56a79a0 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -20,7 +20,7 @@ import bpy import bonsai.bim.handler import bonsai.tool as tool import bonsai.core.system as core -from bonsai.bim.module.system.data import SystemData, PortData +from bonsai.bim.module.system.data import SystemData import bonsai.bim.module.system.decorator as decorator from bonsai.bim.prop import StrProperty, Attribute from bpy.types import PropertyGroup @@ -34,7 +34,7 @@ from bpy.props import ( FloatVectorProperty, CollectionProperty, ) -from typing import TYPE_CHECKING, Union, Optional +from typing import TYPE_CHECKING, Union def get_system_class(self: "BIMSystemProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index ad8d5b5c03..5e904a3206 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -275,8 +275,6 @@ class BIM_PT_port(Panel): relating_object_name = PortData.data["port_relating_object_name"] if PortData.data["is_port"] else "" row.label(text=f"IfcDistributionPort located in: {relating_object_name}") - row.operator("bim.connect_port", icon="PLUGIN", text="") - row.operator("bim.disconnect_port", icon="UNLINKED", text="") row.operator("bim.remove_port", icon="X", text="") if not PortData.is_loaded: @@ -290,6 +288,9 @@ class BIM_PT_port(Panel): row = layout.row(align=True) cols = [row.column(align=True) for i in range(9)] + cols[3].scale_x = 1.0 + cols[6].scale_x = 1.0 + cols[8].scale_x = 1.33 flow_direction_icon = FLOW_DIRECTION_TO_ICON[element.FlowDirection or "NOTDEFINED"] connected_port = tool.System.get_connected_port(element) @@ -299,7 +300,7 @@ class BIM_PT_port(Panel): op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = element.id() else: - cols[0].label(text="", icon="BLANK1") + cols[0].operator("bim.connect_port", icon="PLUGIN", text="") op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = element.id() diff --git a/src/bonsai/bonsai/core/system.py b/src/bonsai/bonsai/core/system.py index 7a1df28280..87a43307b7 100644 --- a/src/bonsai/bonsai/core/system.py +++ b/src/bonsai/bonsai/core/system.py @@ -132,8 +132,8 @@ def remove_port(ifc: type[tool.Ifc], system: type[tool.System], port: ifcopenshe ifc.run("root.remove_product", product=port) -def connect_port(ifc: type[tool.Ifc], port1: ifcopenshell.entity_instance, port2: ifcopenshell.entity_instance) -> None: - ifc.run("system.connect_port", port1=port1, port2=port2) +def connect_port(ifc: type[tool.Ifc], port1: ifcopenshell.entity_instance, port2: ifcopenshell.entity_instance, direction: str = "NOTDEFINED") -> None: + ifc.run("system.connect_port", port1=port1, port2=port2, direction=direction) def disconnect_port(ifc: type[tool.Ifc], port: ifcopenshell.entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py b/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py index 8ffbfcf380..c53e4ae160 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py @@ -66,8 +66,6 @@ def disconnect_port(file: ifcopenshell.file, port: ifcopenshell.entity_instance) rels += port.ConnectedFrom or () for rel in rels: - rel.RelatingPort.FlowDirection = None - rel.RelatedPort.FlowDirection = None history = rel.OwnerHistory file.remove(rel) if history: From 791a41d6496a8a64ce2585577beb4e5d2c5386bd Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Tue, 13 Jan 2026 08:49:57 +0100 Subject: [PATCH 010/171] cleanup and black . --- .../bonsai/bim/module/system/operator.py | 55 +++++++++---------- src/bonsai/bonsai/bim/module/system/prop.py | 13 +++-- src/bonsai/bonsai/bim/module/system/ui.py | 55 +++++++++---------- src/bonsai/bonsai/core/system.py | 7 ++- src/bonsai/bonsai/tool/system.py | 1 + .../ifcopenshell/api/project/append_asset.py | 3 +- 6 files changed, 66 insertions(+), 68 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 049307b32f..066e466bd0 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -186,7 +186,6 @@ class ShowPorts(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.show_ports" bl_label = "Show Ports" bl_options = {"REGISTER", "UNDO"} - element_id: bpy.props.IntProperty(default=0, options={"SKIP_SAVE"}) @classmethod def poll(cls, context): @@ -199,12 +198,9 @@ class ShowPorts(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): # Ifc.Operator - as operator will sync object's position with IFC. - if self.element_id != 0: - element = tool.Ifc.get().by_id(self.element_id) - else: - element = tool.Ifc.get_entity(context.active_object) + element = tool.Ifc.get_entity(context.active_object) core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=element) - + for port in tool.System.get_ports(element): connected_port = tool.System.get_connected_port(port) if connected_port: @@ -260,37 +256,39 @@ class ConnectPort(bpy.types.Operator, tool.Ifc.Operator): obj1 = context.active_object obj2 = context.selected_objects[0] if context.selected_objects[1] == obj1 else context.selected_objects[1] direction = tool.Ifc.get_entity(obj1).FlowDirection or "NOTDEFINED" - core.connect_port(tool.Ifc, port1=tool.Ifc.get_entity(obj1), port2=tool.Ifc.get_entity(obj2), direction=direction) + core.connect_port( + tool.Ifc, port1=tool.Ifc.get_entity(obj1), port2=tool.Ifc.get_entity(obj2), direction=direction + ) class AddRelatedPortConnection(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.add_related_port_connection" bl_label = "Connect Port" bl_options = {"REGISTER", "UNDO"} - + relating_port_id: bpy.props.IntProperty() - + def invoke(self, context, event): return context.window_manager.invoke_props_dialog(self) - + def draw(self, context): props = tool.System.get_system_props() self.layout.prop(props, "related_port", text="Select Port") - + def _execute(self, context): props = tool.System.get_system_props() - + if not props.related_port or props.related_port == "NONE": return {"CANCELLED"} - + port_obj = bpy.data.objects.get(props.related_port) related_port = tool.Ifc.get_entity(port_obj) relating_port = tool.Ifc.get().by_id(self.relating_port_id) - + direction = relating_port.FlowDirection or "NOTDEFINED" core.connect_port(tool.Ifc, port1=relating_port, port2=related_port, direction=direction) PortData.is_loaded = False - + return {"FINISHED"} @@ -436,13 +434,10 @@ class CycleFlowDirection(bpy.types.Operator, tool.Ifc.Operator): @classmethod def description(cls, context, operator): - try: - port = tool.Ifc.get().by_id(operator.port_id) - if port and port.is_a("IfcDistributionPort"): - current_direction = port.FlowDirection or "NOTDEFINED" - return f"Current flow direction: {current_direction}. Click to cycle: SOURCE → SINK → SOURCEANDSINK → NOTDEFINED" - except: - pass + port = tool.Ifc.get().by_id(operator.port_id) + if port and port.is_a("IfcDistributionPort"): + current_direction = port.FlowDirection or "NOTDEFINED" + return f"Current flow direction: {current_direction}. Click to cycle: SOURCE → SINK → SOURCEANDSINK → NOTDEFINED" return "Cycle through flow directions: SOURCE → SINK → SOURCEANDSINK → NOTDEFINED → SOURCE..." def _execute(self, context): @@ -451,30 +446,32 @@ class CycleFlowDirection(bpy.types.Operator, tool.Ifc.Operator): return {"CANCELLED"} current_direction = port.FlowDirection or "NOTDEFINED" - + flow_cycle_map = { "SOURCE": "SINK", "SINK": "SOURCEANDSINK", "SOURCEANDSINK": "NOTDEFINED", - "NOTDEFINED": "SOURCE" + "NOTDEFINED": "SOURCE", } next_direction = flow_cycle_map.get(current_direction, "SOURCE") tool.Ifc.run("attribute.edit_attributes", product=port, attributes={"FlowDirection": next_direction}) - + connected_port = tool.System.get_connected_port(port) if connected_port: connected_direction_map = { "SOURCE": "SINK", "SINK": "SOURCE", "SOURCEANDSINK": "SOURCEANDSINK", - "NOTDEFINED": "NOTDEFINED" + "NOTDEFINED": "NOTDEFINED", } connected_direction = connected_direction_map.get(next_direction, "NOTDEFINED") - tool.Ifc.run("attribute.edit_attributes", product=connected_port, attributes={"FlowDirection": connected_direction}) - + tool.Ifc.run( + "attribute.edit_attributes", product=connected_port, attributes={"FlowDirection": connected_direction} + ) + PortData.is_loaded = False - + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index e4e56a79a0..8954ab67f2 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -19,7 +19,6 @@ import bpy import bonsai.bim.handler import bonsai.tool as tool -import bonsai.core.system as core from bonsai.bim.module.system.data import SystemData import bonsai.bim.module.system.decorator as decorator from bonsai.bim.prop import StrProperty, Attribute @@ -93,23 +92,25 @@ def toggle_decorations(self: "BIMSystemProperties", context: bpy.types.Context) decorator.SystemDecorator.uninstall() -def get_available_ports_for_connection(self: "BIMSystemProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: +def get_available_ports_for_connection( + self: "BIMSystemProperties", context: bpy.types.Context +) -> list[tuple[str, str, str]]: items = [] active_object_ports = set(tool.System.get_ports(tool.Ifc.get_entity(context.active_object))) - + ifc_file = tool.Ifc.get() for ifc_port in ifc_file.by_type("IfcDistributionPort"): port = tool.Ifc.get_object(ifc_port) if not port: continue - + if tool.System.get_connected_port(ifc_port) is not None or ifc_port in active_object_ports: continue - + port_object = tool.Ifc.get_object(tool.System.get_port_relating_element(ifc_port)) suggestion = f"{port_object.name} > {port.name}" items.append((port.name, suggestion, "")) - + return items if items else [("NONE", "Ports are hidden or not available", "")] diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index 5e904a3206..e41295f40e 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -162,11 +162,9 @@ class BIM_PT_ports(Panel): if total_ports == 0: return - props = tool.System.get_system_props() - row = self.layout.row(align=True) - row.label(text="Ports located on object and connected Port/Objects:") - + row.label(text=f"Ports located in: {context.active_object.name} and connected Port/Objects:") + row = self.layout.row(align=True) cols = [row.column(align=True) for i in range(9)] cols[3].scale_x = 1.0 @@ -175,18 +173,17 @@ class BIM_PT_ports(Panel): for port_data in PortData.data["located_ports_data"]: flow_direction_icon = FLOW_DIRECTION_TO_ICON[port_data["FlowDirection"] or "NOTDEFINED"] - + if port_data["connected_obj_name"]: cols[0].operator("bim.disconnect_port", text="", icon="UNLINKED").element_id = port_data["id"] op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = port_data["id"] else: - op = cols[0].operator("bim.add_related_port_connection", text="", icon='PLUGIN') + op = cols[0].operator("bim.add_related_port_connection", text="", icon="PLUGIN") op.relating_port_id = port_data["id"] op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = port_data["id"] - - # Port information + if port_data["port_obj_name"]: cols[2].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = port_data["id"] cols[3].label(text=port_data["port_obj_name"]) @@ -196,16 +193,20 @@ class BIM_PT_ports(Panel): if port_data["connected_obj_name"]: connected_obj = bpy.data.objects[port_data["connected_obj_name"]] - + port = tool.Ifc.get().by_id(port_data["id"]) connected_port = tool.System.get_connected_port(port) if connected_port: connected_port_obj = tool.Ifc.get_object(connected_port) if connected_port_obj: connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] - op = cols[4].operator("bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True) + op = cols[4].operator( + "bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True + ) op.port_id = connected_port.id() - cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = connected_port.id() + cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ( + connected_port.id() + ) cols[6].label(text=connected_port_obj.name) else: blank4 = cols[4].column(align=True) @@ -223,7 +224,7 @@ class BIM_PT_ports(Panel): blank5.scale_x = 0.1 blank5.label(text="", icon="BLANK1") cols[6].label(text="") - + ifc_id = tool.Blender.get_ifc_definition_id(connected_obj) cols[7].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id cols[8].label(text=port_data["connected_obj_name"]) @@ -234,9 +235,9 @@ class BIM_PT_ports(Panel): blank5 = cols[5].column(align=True) blank5.scale_x = 0.1 blank5.label(text="", icon="BLANK1") - + cols[6].label(text="Port is disconnected") - + blank7 = cols[7].column(align=True) blank7.scale_x = 0.1 blank7.label(text="", icon="BLANK1") @@ -265,17 +266,8 @@ class BIM_PT_port(Panel): return True def draw(self, context): - self.props = tool.System.get_system_props() - layout = self.layout row = layout.row(align=True) - - if not PortData.is_loaded: - PortData.load() - - relating_object_name = PortData.data["port_relating_object_name"] if PortData.data["is_port"] else "" - row.label(text=f"IfcDistributionPort located in: {relating_object_name}") - row.operator("bim.remove_port", icon="X", text="") if not PortData.is_loaded: PortData.load() @@ -283,18 +275,21 @@ class BIM_PT_port(Panel): if not PortData.data["is_port"]: return + relating_object_name = PortData.data["port_relating_object_name"] + row.label(text=f"IfcDistributionPort located in: {relating_object_name}") + row.operator("bim.remove_port", icon="X", text="") + element = tool.Ifc.get_entity(context.active_object) - props = tool.System.get_system_props() - + row = layout.row(align=True) cols = [row.column(align=True) for i in range(9)] cols[3].scale_x = 1.0 cols[6].scale_x = 1.0 cols[8].scale_x = 1.33 - + flow_direction_icon = FLOW_DIRECTION_TO_ICON[element.FlowDirection or "NOTDEFINED"] connected_port = tool.System.get_connected_port(element) - + if connected_port: cols[0].operator("bim.disconnect_port", text="", icon="UNLINKED") op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) @@ -303,10 +298,10 @@ class BIM_PT_port(Panel): cols[0].operator("bim.connect_port", icon="PLUGIN", text="") op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) op.port_id = element.id() - + cols[2].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = element.id() cols[3].label(text=context.active_object.name) - + if connected_port: connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] op = cols[4].operator("bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True) @@ -314,7 +309,7 @@ class BIM_PT_port(Panel): cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = connected_port.id() connected_port_obj = tool.Ifc.get_object(connected_port) cols[6].label(text=connected_port_obj.name if connected_port_obj else "Hidden Port") - + connected_object_name = PortData.data["port_connected_object_name"] if connected_object_name: connected_obj = bpy.data.objects[connected_object_name] diff --git a/src/bonsai/bonsai/core/system.py b/src/bonsai/bonsai/core/system.py index 87a43307b7..01f1b7166e 100644 --- a/src/bonsai/bonsai/core/system.py +++ b/src/bonsai/bonsai/core/system.py @@ -132,7 +132,12 @@ def remove_port(ifc: type[tool.Ifc], system: type[tool.System], port: ifcopenshe ifc.run("root.remove_product", product=port) -def connect_port(ifc: type[tool.Ifc], port1: ifcopenshell.entity_instance, port2: ifcopenshell.entity_instance, direction: str = "NOTDEFINED") -> None: +def connect_port( + ifc: type[tool.Ifc], + port1: ifcopenshell.entity_instance, + port2: ifcopenshell.entity_instance, + direction: str = "NOTDEFINED", +) -> None: ifc.run("system.connect_port", port1=port1, port2=port2, direction=direction) diff --git a/src/bonsai/bonsai/tool/system.py b/src/bonsai/bonsai/tool/system.py index 0236b40fbd..3566dbd863 100644 --- a/src/bonsai/bonsai/tool/system.py +++ b/src/bonsai/bonsai/tool/system.py @@ -100,6 +100,7 @@ class System(bonsai.core.tool.System): @classmethod def create_empty_at_cursor_with_element_orientation(cls, element: ifcopenshell.entity_instance) -> bpy.types.Object: + # Is this necessary anymore? element_obj = tool.Ifc.get_object(element) obj = bpy.data.objects.new("Port", None) obj.matrix_world = element_obj.matrix_world diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 0b703b6064..0a5aee0e1c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -490,8 +490,7 @@ class Usecase: attribute_class = None if "." in attribute: attribute, attribute_class = attribute.split(".") - inverse_values = getattr(element, attribute, []) - for inverse in inverse_values: + for inverse in getattr(element, attribute, []): if attribute_class and inverse.is_a(attribute_class): self.add_inverse_element(inverse) elif not attribute_class: From 96a0e9f72d218c662193475eaa1bd221e10ec07f Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Tue, 13 Jan 2026 10:07:10 +0100 Subject: [PATCH 011/171] Adapt tests for create_port_at_cursor method --- src/bonsai/bonsai/core/tool.py | 1 + src/bonsai/test/core/test_system.py | 9 ++++----- src/bonsai/test/tool/test_system.py | 13 +++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index d8e4dd2396..002f643e55 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -1074,6 +1074,7 @@ class Surveyor: @interface class System: def create_empty_at_cursor_with_element_orientation(cls, element): pass + def create_port_at_cursor(cls, system): pass def delete_element_objects(cls, elements): pass def disable_editing_system(cls): pass def disable_system_editing_ui(cls): pass diff --git a/src/bonsai/test/core/test_system.py b/src/bonsai/test/core/test_system.py index d907059b98..4612e14d69 100644 --- a/src/bonsai/test/core/test_system.py +++ b/src/bonsai/test/core/test_system.py @@ -153,11 +153,10 @@ class TestAddPort: def test_run(self, ifc, system): system.get_ports("element").should_be_called().will_return(["port"]) system.load_ports("element", ["port"]).should_be_called() - system.create_empty_at_cursor_with_element_orientation("element").should_be_called().will_return("obj") - system.run_root_assign_class( - obj="obj", ifc_class="IfcDistributionPort", should_add_representation=False - ).should_be_called().will_return("port") - ifc.run("system.assign_port", element="element", port="port").should_be_called() + #system.create_empty_at_cursor_with_element_orientation("element").should_be_called().will_return("obj") + #system.run_root_assign_class(obj="obj", ifc_class="IfcDistributionPort", should_add_representation=False).should_be_called().will_return("port") + system.create_port_at_cursor("element").should_be_called().will_return("port") + system.load_ports("element", ["port"]).should_be_called() subject.add_port(ifc, system, element="element") diff --git a/src/bonsai/test/tool/test_system.py b/src/bonsai/test/tool/test_system.py index de8e9026b0..ba20305140 100644 --- a/src/bonsai/test/tool/test_system.py +++ b/src/bonsai/test/tool/test_system.py @@ -103,6 +103,19 @@ class TestCreateEmptyAtCursorWithElementOrientation(NewFile): obj = subject.create_empty_at_cursor_with_element_orientation(element) assert obj.matrix_world == bpy.context.scene.cursor.matrix +class TestCreatePortAtCursor(NewFile): + def test_run(self): + assert bpy.context.scene + ifc = ifcopenshell.file() + tool.Ifc().set(ifc) + system = ifcopenshell.api.system.add_system(ifc) + element = ifcopenshell.api.root.create_entity(ifc, ifc_class="IfcDuctSegment") + ifcopenshell.api.system.assign_system(ifc, products=[element], system=system) + obj = tool.Ifc.link(element, bpy.data.objects.new("Object", None)) + port = subject.create_port_at_cursor(element) + assert port.is_a("IfcDistributionPort") + assert ifcopenshell.util.system.get_ports(element) == [port] + class TestDeleteElementObjects(NewFile): def test_run(self): From e55955b72a6f7d33ca7cbd7ca3deea4f474de8cd Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Jan 2026 18:11:20 +1100 Subject: [PATCH 012/171] See #7566. Fix unusable lag due to dense meshes with product preview Previously, when the add occurrence modal operator was executed, on every modal loop (i.e. every mouse movement) it would fetch the mesh geometry to be previewed, store the verts / edges / faces in mesh collections, then the decorator would fetch that geometry, the clear the collections, in a loop. I've removed the Blender collections. Instead the same strategy is used as in ItemDecorator i.e. the mesh and verts are fetched once during decorator installation, then on each draw call only a single vertex loop to multiply by the transformation matrix for snapping and mouse position. You can test with the LOD400 model in #7566. On my machine it would cause lag on anything with >500 faces. Now it seems to work without lag on a 26k polygon mesh. --- .../bonsai/bim/module/geometry/decorator.py | 23 +- .../bonsai/bim/module/model/__init__.py | 3 - .../bonsai/bim/module/model/decorator.py | 593 +++++++++++++++++- .../bonsai/bim/module/model/polyline.py | 586 +---------------- src/bonsai/bonsai/bim/module/model/product.py | 2 - src/bonsai/bonsai/bim/module/model/profile.py | 3 - src/bonsai/bonsai/bim/module/model/prop.py | 11 - src/bonsai/bonsai/bim/module/model/slab.py | 3 - src/bonsai/bonsai/bim/module/model/wall.py | 3 - src/bonsai/bonsai/tool/model.py | 23 +- 10 files changed, 594 insertions(+), 656 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/geometry/decorator.py b/src/bonsai/bonsai/bim/module/geometry/decorator.py index 0888dd66c4..02cb4bd255 100644 --- a/src/bonsai/bonsai/bim/module/geometry/decorator.py +++ b/src/bonsai/bonsai/bim/module/geometry/decorator.py @@ -75,27 +75,8 @@ class ItemDecorator: special_edges = [] if (total_triangles := len(obj.data.loop_triangles)) > 0: - # TODO: this is a far too small threshold. - # This is just a stopgap optimisation until other slowdowns are solved. - if total_triangles > 500: - vert_map = {} - i = 0 - verts = [] - tris = [] - for tri in obj.data.loop_triangles[:500]: - new_tri = [] - for vert in tri.vertices: - if vert in vert_map: - new_tri.append(vert_map[vert]) - else: - vert_map[vert] = i - new_tri.append(i) - i += 1 - verts.append(tuple(obj.matrix_world @ obj.data.vertices[vert].co)) - tris.append(new_tri) - else: - verts = [tuple(obj.matrix_world @ v.co) for v in obj.data.vertices] - tris = [tuple(t.vertices) for t in obj.data.loop_triangles] + verts = [tuple(obj.matrix_world @ v.co) for v in obj.data.vertices] + tris = [tuple(t.vertices) for t in obj.data.loop_triangles] i = len(verts) matrix_world = obj.matrix_world diff --git a/src/bonsai/bonsai/bim/module/model/__init__.py b/src/bonsai/bonsai/bim/module/model/__init__.py index 47ef5a0343..c758aa7f54 100644 --- a/src/bonsai/bonsai/bim/module/model/__init__.py +++ b/src/bonsai/bonsai/bim/module/model/__init__.py @@ -140,7 +140,6 @@ classes = ( prop.BIMRailingProperties, prop.BIMRoofProperties, prop.BIMPolylineProperties, - prop.BIMProductPreviewProperties, prop.BIMExternalParametricGeometryProperties, ui.BIM_PT_array, ui.BIM_PT_stair, @@ -263,7 +262,6 @@ def register(): bpy.types.Scene.BIMModelProperties = bpy.props.PointerProperty(type=prop.BIMModelProperties) bpy.types.Scene.BIMPolylineProperties = bpy.props.PointerProperty(type=prop.BIMPolylineProperties) - bpy.types.Scene.BIMProductPreviewProperties = bpy.props.PointerProperty(type=prop.BIMProductPreviewProperties) bpy.types.Object.BIMArrayProperties = bpy.props.PointerProperty(type=prop.BIMArrayProperties) bpy.types.Object.BIMStairProperties = bpy.props.PointerProperty(type=prop.BIMStairProperties) bpy.types.Object.BIMSverchokProperties = bpy.props.PointerProperty(type=prop.BIMSverchokProperties) @@ -288,7 +286,6 @@ def unregister(): del bpy.types.Scene.BIMModelProperties del bpy.types.Scene.BIMPolylineProperties - del bpy.types.Scene.BIMProductPreviewProperties del bpy.types.Object.BIMArrayProperties del bpy.types.Object.BIMStairProperties del bpy.types.Object.BIMSverchokProperties diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index aad4c647ee..43d770828e 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -26,10 +26,10 @@ import ifcopenshell import bonsai.tool as tool import math import mathutils -from math import sin, cos, radians +from math import sin, cos, tan, radians from bpy.types import SpaceView3D from bpy_extras import view3d_utils -from mathutils import Vector, Matrix +from mathutils import Vector, Matrix, Quaternion from gpu_extras.batch import batch_for_shader from gpu_extras.presets import draw_circle_2d from typing import Union @@ -879,13 +879,43 @@ class PolylineDecorator: class ProductDecorator: is_installed = False handlers = [] + preview_mode: Literal["PROFILE_VERTICAL", "PROFILE_HORIZONTAL", "LAYER2", "LAYER3", "GENERIC"] relating_type = None + obj_data: dict[str, list] = {} + obj_matrix_i = None @classmethod def install(cls, context): + from bonsai.bim.module.geometry.decorator import ItemDecorator + if cls.is_installed: cls.uninstall() + + props = tool.Model.get_model_props() + handler = cls() + if ( + (props.relating_type_id) + and (relating_type := tool.Ifc.get().by_id(int(props.relating_type_id))) + and (relating_type_obj := tool.Ifc.get_object(relating_type)) + ): + handler.relating_type = relating_type + if tool.Model.get_usage_type(relating_type) == "PROFILE": + if relating_type.is_a() in {"IfcColumnType", "IfcPileType"}: + handler.preview_mode = "PROFILE_VERTICAL" + else: + handler.preview_mode = "PROFILE_HORIZONTAL" + elif tool.Model.get_usage_type(relating_type) == "LAYER2": + handler.preview_mode = "LAYER2" + elif tool.Model.get_usage_type(relating_type) == "LAYER3": + handler.preview_mode = "LAYER3" + else: + handler.preview_mode = "GENERIC" + if relating_type_obj.data: + handler.obj_data = ItemDecorator.get_obj_data(relating_type_obj) + handler.obj_data["raw_verts"] = [Vector(v) for v in handler.obj_data["verts"]] + handler.obj_matrix_i = relating_type_obj.matrix_world.inverted() + cls.handlers.append( SpaceView3D.draw_handler_add(handler.draw_product_preview, (context,), "WINDOW", "POST_VIEW") ) @@ -893,10 +923,6 @@ class ProductDecorator: @classmethod def uninstall(cls): - props = tool.Model.get_product_preview_props() # updated by model/polyline.py - props.verts.clear() - props.edges.clear() - props.tris.clear() for handler in cls.handlers: try: SpaceView3D.draw_handler_remove(handler, "WINDOW") @@ -912,14 +938,6 @@ class ProductDecorator: shader.uniform_float("color", color) batch.draw(shader) - def get_product_preview_data(self, context) -> dict[str, Any]: - props = tool.Model.get_product_preview_props() - data: dict[str, Any] = {} - data["verts"] = [(*v.value_3d,) for v in props.verts] - data["edges"] = [(int(e.value_2d[0]), int(e.value_2d[1])) for e in props.edges] - data["tris"] = [(int(t.value_3d[0]), int(t.value_3d[1]), int(t.value_3d[2])) for t in props.tris] - return data - def draw_product_preview(self, context): def transparent_color(color, alpha=0.1): color = [i for i in color] @@ -945,12 +963,549 @@ class ProductDecorator: else: return - product_preview_data = self.get_product_preview_data(context) - if product_preview_data: - self.draw_batch("LINES", product_preview_data["verts"], decorator_color, product_preview_data["edges"]) - self.draw_batch( - "TRIS", product_preview_data["verts"], transparent_color(decorator_color), product_preview_data["tris"] + if self.preview_mode == "LAYER2": + data = self.get_wall_preview_data() + elif self.preview_mode == "LAYER3": + data = self.get_slab_preview_data() + elif self.preview_mode == "PROFILE_VERTICAL": + data = self.get_vertical_profile_preview_data() + elif self.preview_mode == "PROFILE_HORIZONTAL": + data = self.get_horizontal_profile_preview_data() + elif self.preview_mode == "GENERIC": + data = self.get_generic_preview_data() + if data: + self.draw_batch("LINES", data["verts"], decorator_color, data["edges"]) + self.draw_batch("TRIS", data["verts"], transparent_color(decorator_color), data["tris"]) + + def get_wall_preview_data(self): + relating_type = self.relating_type + # Get properties from object type + model_props = tool.Model.get_model_props() + direction_sense = model_props.direction_sense + direction = 1 + if direction_sense == "NEGATIVE": + direction = -1 + + layers = tool.Model.get_material_layer_parameters(relating_type) + if not layers["thickness"]: + return + thickness = layers["thickness"] + thickness *= direction + + offset_type = model_props.offset_type_vertical + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + offset = model_props.offset * unit_scale + + height = float(model_props.extrusion_depth) + rl = float(model_props.rl1) + x_angle = float(model_props.x_angle) + if x_angle > radians(90) or x_angle < radians(-90): + height *= -1 + angle_distance = height * tan(x_angle) + thickness *= 1 / cos(x_angle) + + data = {} + data["verts"] = [] + + # Verts + polyline_vertices = [] + polyline_props = tool.Model.get_polyline_props() + polyline_data = polyline_props.insertion_polyline + polyline_points = polyline_data[0].polyline_points if polyline_data else [] + if len(polyline_points) < 2: + data = [] + return + for point in polyline_points: + polyline_vertices.append(Vector((point.x, point.y, point.z))) + + is_closed = False + if ( + polyline_vertices[0].x == polyline_vertices[-1].x + and polyline_vertices[0].y == polyline_vertices[-1].y + and polyline_vertices[0].z == polyline_vertices[-1].z + ): + is_closed = True + polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. + + bm_base = tool.Model.create_bmesh_from_vertices(polyline_vertices, is_closed) + base_vertices = tool.Cad.offset_edges(bm_base, offset) + offset_base_verts = tool.Cad.offset_edges(bm_base, thickness + offset) + top_vertices = tool.Cad.offset_edges(bm_base, angle_distance + offset) + offset_top_verts = tool.Cad.offset_edges(bm_base, angle_distance + thickness + offset) + if is_closed: + base_vertices.append(base_vertices[0]) + offset_base_verts.append(offset_base_verts[0]) + top_vertices.append(top_vertices[0]) + offset_top_verts.append(offset_top_verts[0]) + + if offset_base_verts is not None: + for v in base_vertices: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) + + for v in offset_base_verts[::-1]: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) + + for v in top_vertices: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) + + for v in offset_top_verts[::-1]: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) + + bm_base.free() + + # Edges and Tris + points = [] + side_edges_1 = [] + side_edges_2 = [] + base_edges = [] + + for i in range(len(data["verts"])): + points.append(Vector(data["verts"][i])) + + n = len(points) // 2 + bottom_side_1 = [[i, (i + 1) % (n)] for i in range((n - 1) // 2)] + bottom_side_2 = [[i, (i + 1) % (n)] for i in range(n // 2, n - 1)] + bottom_connections = [[i, n - i - 1] for i in range(n // 2)] + bottom_loop = bottom_connections + bottom_side_1 + bottom_side_2 + side_edges_1.extend(bottom_side_1) + side_edges_2.extend(bottom_side_2) + base_edges.extend(bottom_loop) + + upper_side_1 = [[i + n for i in edges] for edges in bottom_side_1] + upper_side_2 = [[i + n for i in edges] for edges in bottom_side_2] + upper_loop = [[i + n for i in edges] for edges in bottom_loop] + side_edges_1.extend(upper_side_1) + side_edges_2.extend(upper_side_2) + base_edges.extend(upper_loop) + + loops = [side_edges_1, side_edges_2, base_edges] + + data["edges"] = [] + data["tris"] = [] + for i, group in enumerate(loops): + bm = bmesh.new() + + new_verts = [bm.verts.new(v) for v in points] + new_edges = [bm.edges.new((new_verts[e[0]], new_verts[e[1]])) for e in group] + + bm.verts.index_update() + bm.edges.index_update() + + if i == 2: + new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) + new_faces = bmesh.ops.bridge_loops(bm, edges=bm.edges, use_pairs=True, use_cyclic=True) + + bm.verts.index_update() + bm.edges.index_update() + edges = [[v.index for v in e.verts] for e in bm.edges] + tris = [[l.vert.index for l in loop] for loop in bm.calc_loop_triangles()] + data["edges"].extend(edges) + data["tris"].extend(tris) + + data["edges"] = list(set(tuple(e) for e in data["edges"])) + data["tris"] = list(set(tuple(t) for t in data["tris"])) + return data + + def get_slab_preview_data(self): + relating_type = self.relating_type + model_props = tool.Model.get_model_props() + x_angle = 0 if tool.Cad.is_x(model_props.x_angle, 0, tolerance=0.001) else model_props.x_angle + direction_sense = model_props.direction_sense + direction = 1 + if direction_sense == "NEGATIVE": + direction = -1 + + layers = tool.Model.get_material_layer_parameters(relating_type) + if not layers["thickness"]: + return + thickness = layers["thickness"] * abs(1 / cos(x_angle)) + thickness *= direction + + offset_type = model_props.offset_type_horizontal + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + offset = model_props.offset * abs(1 / cos(x_angle)) * unit_scale + + data = {} + data["verts"] = [] + # Verts + polyline_vertices = [] + polyline_props = tool.Model.get_polyline_props() + polyline_data = polyline_props.insertion_polyline + polyline_points = polyline_data[0].polyline_points if polyline_data else [] + if len(polyline_points) < 3: + data = [] + return + for point in polyline_points: + polyline_vertices.append(Vector((point.x, point.y, point.z))) + if x_angle: + # Get vertices relative to the first polyline point as origin + local_vertices = [v - Vector(polyline_vertices[0]) for v in polyline_vertices] + # Make the transformation relative to the x_angle + transformed_vertices = [Vector((v.x, v.y * (1 / cos(x_angle)), v.z)) for v in local_vertices] + # Convert back to world origin + polyline_vertices = [v + Vector(polyline_vertices[0]) for v in transformed_vertices] + if offset != 0: + polyline_vertices = [v + Vector((0, 0, offset)) for v in polyline_vertices] + is_closed = True + if ( + polyline_vertices[0].x == polyline_vertices[-1].x + and polyline_vertices[0].y == polyline_vertices[-1].y + and polyline_vertices[0].z == polyline_vertices[-1].z + ): + polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. + bm = tool.Model.create_bmesh_from_vertices(polyline_vertices, is_closed) + bm.verts.ensure_lookup_table() + if x_angle: + rot_mat = Matrix.Rotation(x_angle, 3, "X") + if abs(x_angle) > (pi / 2): + rot_mat = rot_mat @ Matrix.Scale(-1, 3, (0, 1, 0)) + bmesh.ops.rotate(bm, cent=Vector(bm.verts[0].co), verts=bm.verts, matrix=rot_mat) + new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) + new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) + new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] + new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, thickness)) + bm.verts.index_update() + bm.edges.index_update() + verts = [tuple(v.co) for v in bm.verts] + edges = [[v.index for v in e.verts] for e in bm.edges] + tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] + data["verts"] = verts + data["edges"] = edges + data["tris"] = tris + return data + + def get_vertical_profile_preview_data(self) -> dict[str, Any]: + relating_type = self.relating_type + material = ifcopenshell.util.element.get_material(relating_type) + try: + profile = material.MaterialProfiles[0].Profile + except: + return {} + + model_props = tool.Model.get_model_props() + extrusion_depth = model_props.extrusion_depth + cardinal_point = model_props.cardinal_point + rot_mat = Quaternion() + if relating_type.is_a("IfcBeamType"): + y_rot = Quaternion((0.0, 1.0, 0.0), radians(90)) + z_rot = Quaternion((0.0, 0.0, 1.0), radians(90)) + rot_mat = y_rot @ z_rot + # Get profile data + settings = ifcopenshell.geom.settings() + settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) + shape = ifcopenshell.geom.create_shape(settings, profile) + + verts = shape.verts + if not verts: + raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile}'.") + + edges = shape.edges + + grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] + grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] + + # Create offsets based on cardinal point + min_x = min(v[0] for v in grouped_verts) + max_x = max(v[0] for v in grouped_verts) + min_y = min(v[1] for v in grouped_verts) + max_y = max(v[1] for v in grouped_verts) + + x_offset = (max_x - min_x) / 2 + y_offset = (max_y - min_y) / 2 + + match cardinal_point: + case "1": + grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "2": + grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] + case "3": + grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "4": + grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] + case "5": + grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] + case "6": + grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] + case "7": + grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + case "8": + grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] + case "9": + grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + + # Create extrusion bmesh + bm = bmesh.new() + + grouped_verts.append(grouped_verts[0]) # Close profile + new_verts = [bm.verts.new(v) for v in grouped_verts] + new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(grouped_verts) - 1)] + + bm.verts.index_update() + bm.edges.index_update() + + bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.001) + + new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) + + new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.faces, use_dissolve_ortho_edges=True) + new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] + new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, extrusion_depth)) + + bm.verts.index_update() + bm.edges.index_update() + tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] + + # Calculate rotation, mouse position, angle and cardinal point + polyline_props = tool.Model.get_polyline_props() + snap_prop = polyline_props.snap_mouse_point[0] + mouse_point = Vector((snap_prop.x, snap_prop.y, snap_prop.z)) + data = {} + + verts = [tuple(v.co) for v in bm.verts] + verts = [tuple(rot_mat @ Vector(v)) for v in verts] + verts = [tuple(Vector(v) + mouse_point) for v in verts] + min_z = min(v.co.z for v in bm.verts) + max_z = max(v.co.z for v in bm.verts) + # Add axis verts + verts.append(tuple(mouse_point)) + verts.append(tuple(mouse_point + Vector((0, 0, max_z)))) + # Add only profile edges + edges = [] + for edge in bm.edges: + if (edge.verts[0].co.z == min_z and edge.verts[1].co.z == min_z) or ( + edge.verts[0].co.z == max_z and edge.verts[1].co.z == max_z + ): + edges.append(edge) + # Add axis edge + edges = [(edge.verts[0].index, edge.verts[1].index) for edge in edges] + edges.append((len(verts) - 1, len(verts) - 2)) + data["verts"] = verts + data["edges"] = edges + data["tris"] = tris + + bm.free() + return data + + def get_horizontal_profile_preview_data(self) -> dict[str, Any]: + relating_type = self.relating_type + material = ifcopenshell.util.element.get_material(relating_type) + try: + profile_curve = material.MaterialProfiles[0].Profile + except: + return {} + + model_props = tool.Model.get_model_props() + cardinal_point = model_props.cardinal_point + + polyline_verts = [] + polyline_props = tool.Model.get_polyline_props() + polyline_data = polyline_props.insertion_polyline + polyline_points = polyline_data[0].polyline_points if polyline_data else [] + if len(polyline_points) < 2: + return {} + for point in polyline_points: + polyline_verts.append(Vector((point.x, point.y, point.z))) + polyline_edges = [(i, i + 1) for i in range(len(polyline_verts) - 1)] + + # Get profile shape + settings = ifcopenshell.geom.settings() + settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) + shape = ifcopenshell.geom.create_shape(settings, profile_curve) + + verts = shape.verts + if not verts: + raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile_curve}'.") + + edges = shape.edges + + grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] + grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] + + # Create offsets based on cardinal point + min_x = min(v[0] for v in grouped_verts) + max_x = max(v[0] for v in grouped_verts) + min_y = min(v[1] for v in grouped_verts) + max_y = max(v[1] for v in grouped_verts) + + x_offset = (max_x - min_x) / 2 + y_offset = (max_y - min_y) / 2 + + match cardinal_point: + case "1": + grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "2": + grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] + case "3": + grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "4": + grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] + case "5": + grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] + case "6": + grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] + case "7": + grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + case "8": + grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] + case "9": + grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + + data: dict[str, Any] = {} + data["verts"] = [] + data["edges"] = [] + data["tris"] = [] + + grouped_verts = [(v) for v in grouped_verts] + + all_bm = bmesh.new() + for i in range(len(polyline_verts) - 1): + mesh = bpy.data.meshes.new("TempMesh") + # Create the initial mesh from the profile verts + bm = tool.Model.create_bmesh_from_vertices(grouped_verts, is_closed=True) + bm.verts.ensure_lookup_table() + # Creates the clipping plane formed by two segments. + # The first one is for the profile start, based on the current and previous segment of the polyline. + # The second is for the profile end, based on the current and the next segment. + if i == 0: + d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() + clip_start = d + else: + d1 = (polyline_verts[i] - polyline_verts[i - 1]).normalized() + d2 = (polyline_verts[i] - polyline_verts[i + 1]).normalized() + clip_start = (d1 - d2).normalized() + + if i == len(polyline_verts) - 2: + d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() + clip_end = d + else: + d1 = (polyline_verts[i + 1] - polyline_verts[i]).normalized() + d2 = (polyline_verts[i + 1] - polyline_verts[i + 2]).normalized() + clip_end = (d1 - d2).normalized() + + # Rotates the profile face to the right direction + direction = polyline_verts[i + 1] - polyline_verts[i] + position = polyline_verts[i] + rotation_matrix = direction.to_track_quat("Z", "Y").to_matrix().to_4x4() + bmesh.ops.transform(bm, verts=bm.verts, matrix=rotation_matrix) + bmesh.ops.translate(bm, verts=bm.verts, vec=position) + bmesh.ops.translate(bm, verts=bm.verts, vec=-direction) + + # Extrude and move the new face + last_face = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) + new_verts = [e for e in last_face["geom"] if isinstance(e, bmesh.types.BMVert)] + bmesh.ops.translate(bm, verts=new_verts, vec=direction * 3) + # Apply the cutting planes + cut = bmesh.ops.bisect_plane( + bm, + geom=bm.verts[:] + bm.edges[:] + bm.faces[:], + plane_co=polyline_verts[i], + plane_no=clip_start, + clear_inner=True, ) + bm.verts.index_update() + bm.edges.index_update() + cut = bmesh.ops.bisect_plane( + bm, + geom=bm.verts[:] + bm.edges[:] + bm.faces[:], + plane_co=polyline_verts[i + 1], + plane_no=clip_end, + clear_outer=True, + ) + + bm.to_mesh(mesh) + bm.free() + mesh.update() + all_bm.from_mesh(mesh) + bpy.data.meshes.remove(bpy.data.meshes["TempMesh"]) + + # It's necessary to add the mesh to an object to get the expected result. + mesh = bpy.data.meshes.new("TempMesh2") + all_bm.to_mesh(mesh) + all_bm.free() + obj = bpy.data.objects.new("TempObj", mesh) + bm = bmesh.new() + bm.from_mesh(obj.data) + bpy.data.meshes.remove(bpy.data.meshes["TempMesh2"]) + + verts = [tuple(v.co) for v in bm.verts] + edges = [[v.index for v in e.verts] for e in bm.edges] + tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] + data["verts"] = verts + data["edges"] = edges + data["tris"] = tris + bm.free() + return data + + def get_generic_preview_data(self): + if not (data := self.obj_data): + return + relating_type = self.relating_type + model_props = tool.Model.get_model_props() + if relating_type.is_a("IfcDoorType"): + rl = float(model_props.rl1) + elif relating_type.is_a("IfcWindowType"): + rl = float(model_props.rl2) + else: + rl = 0 + polyline_props = tool.Model.get_polyline_props() + snap_prop = polyline_props.snap_mouse_point[0] + default_container_elevation = tool.Root.get_default_container_elevation() + mouse_point = Vector((snap_prop.x, snap_prop.y, default_container_elevation)) + snap_obj = bpy.data.objects.get(snap_prop.snap_object) + snap_element = tool.Ifc.get_entity(snap_obj) + rot_mat = Matrix() + if relating_type.is_a() in ["IfcDoorType", "IfcWindowType"] and snap_element and snap_element.is_a("IfcWall"): + layers = tool.Model.get_material_layer_parameters(snap_element) + axes = tool.Model.get_wall_axis(snap_obj, layers=layers) + axis_base = axes["base"] + axis_side = axes["side"] + point_on_base_axis = tool.Cad.point_on_edge(mouse_point, axis_base) + point_on_side_axis = tool.Cad.point_on_edge(mouse_point, axis_side) + if (point_on_base_axis - mouse_point).length_squared <= (point_on_side_axis - mouse_point).length_squared: + # mouse is snapped to the base axis, the preview looks exactly like the placed door / window + rot_mat = snap_obj.matrix_world + else: + # mouse is snapped to the side axis, the preview is inverted, rotate it now and correct x position later + rot_mat = ( + (snap_obj.matrix_world.to_quaternion() @ Quaternion(Vector((0, 0, 1)), radians(180))) + .to_matrix() + .to_4x4() + ) + + mouse_point.z = snap_obj.matrix_world.translation.z + + if snap_element and (container := ifcopenshell.util.element.get_container(snap_element)): + container_obj = tool.Ifc.get_object(container) + mouse_point.z = container_obj.location.z + + obj_type = tool.Ifc.get_object(relating_type) + + subcontexts = tool.Drawing.get_active_drawing_subcontexts() + if not subcontexts: + subcontexts = [("Model", "Body", "MODEL_VIEW")] + + active_context = tool.Geometry.get_active_representation_context(obj_type) + active_context_params = tool.Geometry.get_subcontext_parameters(active_context) + for subcontext in subcontexts: + if subcontext == active_context_params: + break + + representation = ifcopenshell.util.representation.get_representation(relating_type, *subcontext) + if representation: + bonsai.core.geometry.switch_representation( + tool.Ifc, + tool.Geometry, + obj_type, + representation, + ) + context.view_layer.update() + break + + translate_mouse = Matrix.Translation(mouse_point) + translate_rl = Matrix.Translation((0.0, 0.0, rl)) + combined_m = translate_mouse @ rot_mat @ translate_rl @ self.obj_matrix_i + data["verts"] = [tuple(combined_m @ v) for v in data["raw_verts"]] + return data class WallAxisDecorator: diff --git a/src/bonsai/bonsai/bim/module/model/polyline.py b/src/bonsai/bonsai/bim/module/model/polyline.py index b389f2be1f..d2514321f3 100644 --- a/src/bonsai/bonsai/bim/module/model/polyline.py +++ b/src/bonsai/bonsai/bim/module/model/polyline.py @@ -35,565 +35,12 @@ import bonsai.core.root import bonsai.core.geometry import bonsai.core.model as core import bonsai.tool as tool -from math import pi, sin, cos, degrees, tan, radians -from mathutils import Vector, Matrix, Quaternion -from bonsai.bim.module.model.opening import FilledOpeningGenerator +from mathutils import Vector from bonsai.bim.module.model.decorator import PolylineDecorator -from bonsai.bim.module.geometry.decorator import ItemDecorator from typing import Optional, Union, Literal, Any from lark import Lark, Transformer -def create_bmesh_from_vertices(vertices, is_closed=False): - bm = bmesh.new() - - new_verts = [bm.verts.new(v) for v in vertices] - if is_closed: - new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] - new_edges.append( - bm.edges.new((new_verts[-1], new_verts[0])) - ) # Add an edge between the last an first point to make it closed. - else: - new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] - - bm.verts.index_update() - bm.edges.index_update() - return bm - - -def get_wall_preview_data(context, relating_type): - # Get properties from object type - model_props = tool.Model.get_model_props() - direction_sense = model_props.direction_sense - direction = 1 - if direction_sense == "NEGATIVE": - direction = -1 - - layers = tool.Model.get_material_layer_parameters(relating_type) - if not layers["thickness"]: - return - thickness = layers["thickness"] - thickness *= direction - - offset_type = model_props.offset_type_vertical - unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - offset = model_props.offset * unit_scale - - height = float(model_props.extrusion_depth) - rl = float(model_props.rl1) - x_angle = float(model_props.x_angle) - if x_angle > radians(90) or x_angle < radians(-90): - height *= -1 - angle_distance = height * tan(x_angle) - thickness *= 1 / cos(x_angle) - - data = {} - data["verts"] = [] - - # Verts - polyline_vertices = [] - polyline_props = tool.Model.get_polyline_props() - polyline_data = polyline_props.insertion_polyline - polyline_points = polyline_data[0].polyline_points if polyline_data else [] - if len(polyline_points) < 2: - data = [] - return - for point in polyline_points: - polyline_vertices.append(Vector((point.x, point.y, point.z))) - - is_closed = False - if ( - polyline_vertices[0].x == polyline_vertices[-1].x - and polyline_vertices[0].y == polyline_vertices[-1].y - and polyline_vertices[0].z == polyline_vertices[-1].z - ): - is_closed = True - polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. - - bm_base = create_bmesh_from_vertices(polyline_vertices, is_closed) - base_vertices = tool.Cad.offset_edges(bm_base, offset) - offset_base_verts = tool.Cad.offset_edges(bm_base, thickness + offset) - top_vertices = tool.Cad.offset_edges(bm_base, angle_distance + offset) - offset_top_verts = tool.Cad.offset_edges(bm_base, angle_distance + thickness + offset) - if is_closed: - base_vertices.append(base_vertices[0]) - offset_base_verts.append(offset_base_verts[0]) - top_vertices.append(top_vertices[0]) - offset_top_verts.append(offset_top_verts[0]) - - if offset_base_verts is not None: - for v in base_vertices: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) - - for v in offset_base_verts[::-1]: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) - - for v in top_vertices: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) - - for v in offset_top_verts[::-1]: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) - - bm_base.free() - - # Edges and Tris - points = [] - side_edges_1 = [] - side_edges_2 = [] - base_edges = [] - - for i in range(len(data["verts"])): - points.append(Vector(data["verts"][i])) - - n = len(points) // 2 - bottom_side_1 = [[i, (i + 1) % (n)] for i in range((n - 1) // 2)] - bottom_side_2 = [[i, (i + 1) % (n)] for i in range(n // 2, n - 1)] - bottom_connections = [[i, n - i - 1] for i in range(n // 2)] - bottom_loop = bottom_connections + bottom_side_1 + bottom_side_2 - side_edges_1.extend(bottom_side_1) - side_edges_2.extend(bottom_side_2) - base_edges.extend(bottom_loop) - - upper_side_1 = [[i + n for i in edges] for edges in bottom_side_1] - upper_side_2 = [[i + n for i in edges] for edges in bottom_side_2] - upper_loop = [[i + n for i in edges] for edges in bottom_loop] - side_edges_1.extend(upper_side_1) - side_edges_2.extend(upper_side_2) - base_edges.extend(upper_loop) - - loops = [side_edges_1, side_edges_2, base_edges] - - data["edges"] = [] - data["tris"] = [] - for i, group in enumerate(loops): - bm = bmesh.new() - - new_verts = [bm.verts.new(v) for v in points] - new_edges = [bm.edges.new((new_verts[e[0]], new_verts[e[1]])) for e in group] - - bm.verts.index_update() - bm.edges.index_update() - - if i == 2: - new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) - new_faces = bmesh.ops.bridge_loops(bm, edges=bm.edges, use_pairs=True, use_cyclic=True) - - bm.verts.index_update() - bm.edges.index_update() - edges = [[v.index for v in e.verts] for e in bm.edges] - tris = [[l.vert.index for l in loop] for loop in bm.calc_loop_triangles()] - data["edges"].extend(edges) - data["tris"].extend(tris) - - data["edges"] = list(set(tuple(e) for e in data["edges"])) - data["tris"] = list(set(tuple(t) for t in data["tris"])) - - return data - - -def get_slab_preview_data(context, relating_type): - model_props = tool.Model.get_model_props() - x_angle = 0 if tool.Cad.is_x(model_props.x_angle, 0, tolerance=0.001) else model_props.x_angle - direction_sense = model_props.direction_sense - direction = 1 - if direction_sense == "NEGATIVE": - direction = -1 - - layers = tool.Model.get_material_layer_parameters(relating_type) - if not layers["thickness"]: - return - thickness = layers["thickness"] * abs(1 / cos(x_angle)) - thickness *= direction - - offset_type = model_props.offset_type_horizontal - unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - offset = model_props.offset * abs(1 / cos(x_angle)) * unit_scale - - data = {} - data["verts"] = [] - # Verts - polyline_vertices = [] - polyline_props = tool.Model.get_polyline_props() - polyline_data = polyline_props.insertion_polyline - polyline_points = polyline_data[0].polyline_points if polyline_data else [] - if len(polyline_points) < 3: - data = [] - return - for point in polyline_points: - polyline_vertices.append(Vector((point.x, point.y, point.z))) - if x_angle: - # Get vertices relative to the first polyline point as origin - local_vertices = [v - Vector(polyline_vertices[0]) for v in polyline_vertices] - # Make the transformation relative to the x_angle - transformed_vertices = [Vector((v.x, v.y * (1 / cos(x_angle)), v.z)) for v in local_vertices] - # Convert back to world origin - polyline_vertices = [v + Vector(polyline_vertices[0]) for v in transformed_vertices] - if offset != 0: - polyline_vertices = [v + Vector((0, 0, offset)) for v in polyline_vertices] - is_closed = True - if ( - polyline_vertices[0].x == polyline_vertices[-1].x - and polyline_vertices[0].y == polyline_vertices[-1].y - and polyline_vertices[0].z == polyline_vertices[-1].z - ): - polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. - bm = create_bmesh_from_vertices(polyline_vertices, is_closed) - bm.verts.ensure_lookup_table() - if x_angle: - rot_mat = Matrix.Rotation(x_angle, 3, "X") - if abs(x_angle) > (pi / 2): - rot_mat = rot_mat @ Matrix.Scale(-1, 3, (0, 1, 0)) - bmesh.ops.rotate(bm, cent=Vector(bm.verts[0].co), verts=bm.verts, matrix=rot_mat) - new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) - new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) - new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] - new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, thickness)) - bm.verts.index_update() - bm.edges.index_update() - verts = [tuple(v.co) for v in bm.verts] - edges = [[v.index for v in e.verts] for e in bm.edges] - tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] - data["verts"] = verts - data["edges"] = edges - data["tris"] = tris - return data - - -def get_vertical_profile_preview_data( - context: bpy.types.Context, relating_type: ifcopenshell.entity_instance -) -> dict[str, Any]: - material = ifcopenshell.util.element.get_material(relating_type) - try: - profile = material.MaterialProfiles[0].Profile - except: - return {} - - model_props = tool.Model.get_model_props() - extrusion_depth = model_props.extrusion_depth - cardinal_point = model_props.cardinal_point - rot_mat = Quaternion() - if relating_type.is_a("IfcBeamType"): - y_rot = Quaternion((0.0, 1.0, 0.0), radians(90)) - z_rot = Quaternion((0.0, 0.0, 1.0), radians(90)) - rot_mat = y_rot @ z_rot - # Get profile data - settings = ifcopenshell.geom.settings() - settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) - shape = ifcopenshell.geom.create_shape(settings, profile) - - verts = shape.verts - if not verts: - raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile}'.") - - edges = shape.edges - - grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] - grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] - - # Create offsets based on cardinal point - min_x = min(v[0] for v in grouped_verts) - max_x = max(v[0] for v in grouped_verts) - min_y = min(v[1] for v in grouped_verts) - max_y = max(v[1] for v in grouped_verts) - - x_offset = (max_x - min_x) / 2 - y_offset = (max_y - min_y) / 2 - - match cardinal_point: - case "1": - grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "2": - grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] - case "3": - grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "4": - grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] - case "5": - grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] - case "6": - grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] - case "7": - grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - case "8": - grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] - case "9": - grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - - # Create extrusion bmesh - bm = bmesh.new() - - grouped_verts.append(grouped_verts[0]) # Close profile - new_verts = [bm.verts.new(v) for v in grouped_verts] - new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(grouped_verts) - 1)] - - bm.verts.index_update() - bm.edges.index_update() - - bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.001) - - new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) - - new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.faces, use_dissolve_ortho_edges=True) - new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] - new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, extrusion_depth)) - - bm.verts.index_update() - bm.edges.index_update() - tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] - - # Calculate rotation, mouse position, angle and cardinal point - polyline_props = tool.Model.get_polyline_props() - snap_prop = polyline_props.snap_mouse_point[0] - mouse_point = Vector((snap_prop.x, snap_prop.y, snap_prop.z)) - data = {} - - verts = [tuple(v.co) for v in bm.verts] - verts = [tuple(rot_mat @ Vector(v)) for v in verts] - verts = [tuple(Vector(v) + mouse_point) for v in verts] - min_z = min(v.co.z for v in bm.verts) - max_z = max(v.co.z for v in bm.verts) - # Add axis verts - verts.append(tuple(mouse_point)) - verts.append(tuple(mouse_point + Vector((0, 0, max_z)))) - # Add only profile edges - edges = [] - for edge in bm.edges: - if (edge.verts[0].co.z == min_z and edge.verts[1].co.z == min_z) or ( - edge.verts[0].co.z == max_z and edge.verts[1].co.z == max_z - ): - edges.append(edge) - # Add axis edge - edges = [(edge.verts[0].index, edge.verts[1].index) for edge in edges] - edges.append((len(verts) - 1, len(verts) - 2)) - data["verts"] = verts - data["edges"] = edges - data["tris"] = tris - - bm.free() - - return data - - -def get_horizontal_profile_preview_data( - context: bpy.types.Context, relating_type: ifcopenshell.entity_instance -) -> dict[str, Any]: - material = ifcopenshell.util.element.get_material(relating_type) - try: - profile_curve = material.MaterialProfiles[0].Profile - except: - return {} - - model_props = tool.Model.get_model_props() - cardinal_point = model_props.cardinal_point - - polyline_verts = [] - polyline_props = tool.Model.get_polyline_props() - polyline_data = polyline_props.insertion_polyline - polyline_points = polyline_data[0].polyline_points if polyline_data else [] - if len(polyline_points) < 2: - return {} - for point in polyline_points: - polyline_verts.append(Vector((point.x, point.y, point.z))) - polyline_edges = [(i, i + 1) for i in range(len(polyline_verts) - 1)] - - # Get profile shape - settings = ifcopenshell.geom.settings() - settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) - shape = ifcopenshell.geom.create_shape(settings, profile_curve) - - verts = shape.verts - if not verts: - raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile_curve}'.") - - edges = shape.edges - - grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] - grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] - - # Create offsets based on cardinal point - min_x = min(v[0] for v in grouped_verts) - max_x = max(v[0] for v in grouped_verts) - min_y = min(v[1] for v in grouped_verts) - max_y = max(v[1] for v in grouped_verts) - - x_offset = (max_x - min_x) / 2 - y_offset = (max_y - min_y) / 2 - - match cardinal_point: - case "1": - grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "2": - grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] - case "3": - grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "4": - grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] - case "5": - grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] - case "6": - grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] - case "7": - grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - case "8": - grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] - case "9": - grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - - data: dict[str, Any] = {} - data["verts"] = [] - data["edges"] = [] - data["tris"] = [] - - grouped_verts = [(v) for v in grouped_verts] - - all_bm = bmesh.new() - for i in range(len(polyline_verts) - 1): - mesh = bpy.data.meshes.new("TempMesh") - # Create the initial mesh from the profile verts - bm = create_bmesh_from_vertices(grouped_verts, is_closed=True) - bm.verts.ensure_lookup_table() - # Creates the clipping plane formed by two segments. - # The first one is for the profile start, based on the current and previous segment of the polyline. - # The second is for the profile end, based on the current and the next segment. - if i == 0: - d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() - clip_start = d - else: - d1 = (polyline_verts[i] - polyline_verts[i - 1]).normalized() - d2 = (polyline_verts[i] - polyline_verts[i + 1]).normalized() - clip_start = (d1 - d2).normalized() - - if i == len(polyline_verts) - 2: - d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() - clip_end = d - else: - d1 = (polyline_verts[i + 1] - polyline_verts[i]).normalized() - d2 = (polyline_verts[i + 1] - polyline_verts[i + 2]).normalized() - clip_end = (d1 - d2).normalized() - - # Rotates the profile face to the right direction - direction = polyline_verts[i + 1] - polyline_verts[i] - position = polyline_verts[i] - rotation_matrix = direction.to_track_quat("Z", "Y").to_matrix().to_4x4() - bmesh.ops.transform(bm, verts=bm.verts, matrix=rotation_matrix) - bmesh.ops.translate(bm, verts=bm.verts, vec=position) - bmesh.ops.translate(bm, verts=bm.verts, vec=-direction) - - # Extrude and move the new face - last_face = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) - new_verts = [e for e in last_face["geom"] if isinstance(e, bmesh.types.BMVert)] - bmesh.ops.translate(bm, verts=new_verts, vec=direction * 3) - # Apply the cutting planes - cut = bmesh.ops.bisect_plane( - bm, - geom=bm.verts[:] + bm.edges[:] + bm.faces[:], - plane_co=polyline_verts[i], - plane_no=clip_start, - clear_inner=True, - ) - bm.verts.index_update() - bm.edges.index_update() - cut = bmesh.ops.bisect_plane( - bm, - geom=bm.verts[:] + bm.edges[:] + bm.faces[:], - plane_co=polyline_verts[i + 1], - plane_no=clip_end, - clear_outer=True, - ) - - bm.to_mesh(mesh) - bm.free() - mesh.update() - all_bm.from_mesh(mesh) - bpy.data.meshes.remove(bpy.data.meshes["TempMesh"]) - - # It's necessary to add the mesh to an object to get the expected result. - mesh = bpy.data.meshes.new("TempMesh2") - all_bm.to_mesh(mesh) - all_bm.free() - obj = bpy.data.objects.new("TempObj", mesh) - bm = bmesh.new() - bm.from_mesh(obj.data) - bpy.data.meshes.remove(bpy.data.meshes["TempMesh2"]) - - verts = [tuple(v.co) for v in bm.verts] - edges = [[v.index for v in e.verts] for e in bm.edges] - tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] - data["verts"] = verts - data["edges"] = edges - data["tris"] = tris - bm.free() - return data - - -def get_generic_product_preview_data(context, relating_type): - model_props = tool.Model.get_model_props() - if relating_type.is_a("IfcDoorType"): - rl = float(model_props.rl1) - elif relating_type.is_a("IfcWindowType"): - rl = float(model_props.rl2) - else: - rl = 0 - polyline_props = tool.Model.get_polyline_props() - snap_prop = polyline_props.snap_mouse_point[0] - default_container_elevation = tool.Root.get_default_container_elevation() - mouse_point = Vector((snap_prop.x, snap_prop.y, default_container_elevation)) - snap_obj = bpy.data.objects.get(snap_prop.snap_object) - snap_element = tool.Ifc.get_entity(snap_obj) - rot_mat = Matrix() - if relating_type.is_a() in ["IfcDoorType", "IfcWindowType"] and snap_element and snap_element.is_a("IfcWall"): - layers = tool.Model.get_material_layer_parameters(snap_element) - axes = tool.Model.get_wall_axis(snap_obj, layers=layers) - axis_base = axes["base"] - axis_side = axes["side"] - point_on_base_axis = tool.Cad.point_on_edge(mouse_point, axis_base) - point_on_side_axis = tool.Cad.point_on_edge(mouse_point, axis_side) - if (point_on_base_axis - mouse_point).length_squared <= (point_on_side_axis - mouse_point).length_squared: - # mouse is snapped to the base axis, the preview looks exactly like the placed door / window - rot_mat = snap_obj.matrix_world - else: - # mouse is snapped to the side axis, the preview is inverted, rotate it now and correct x position later - rot_mat = (snap_obj.matrix_world.to_quaternion() @ Quaternion(Vector((0, 0, 1)), radians(180))).to_matrix().to_4x4() - - mouse_point.z = snap_obj.matrix_world.translation.z - - if snap_element and (container := ifcopenshell.util.element.get_container(snap_element)): - container_obj = tool.Ifc.get_object(container) - mouse_point.z = container_obj.location.z - - obj_type = tool.Ifc.get_object(relating_type) - - subcontexts = tool.Drawing.get_active_drawing_subcontexts() - if not subcontexts: - subcontexts = [("Model", "Body", "MODEL_VIEW")] - - active_context = tool.Geometry.get_active_representation_context(obj_type) - active_context_params = tool.Geometry.get_subcontext_parameters(active_context) - for subcontext in subcontexts: - if subcontext == active_context_params: - break - - representation = ifcopenshell.util.representation.get_representation(relating_type, *subcontext) - if representation: - bonsai.core.geometry.switch_representation( - tool.Ifc, - tool.Geometry, - obj_type, - representation, - ) - context.view_layer.update() - break - - if obj_type.data: - data = ItemDecorator.get_obj_data(obj_type) - obj_type_matrix_i = obj_type.matrix_world.inverted() - translate_mouse = Matrix.Translation(mouse_point) - translate_rl = Matrix.Translation((0.0, 0.0, rl)) - combined_m = translate_mouse @ rot_mat @ translate_rl @ obj_type_matrix_i - data["verts"] = [tuple(combined_m @ Vector(v)) for v in data["verts"]] - return data - - class PolylineOperator: # TODO Fill doc strings """ """ @@ -989,37 +436,6 @@ class PolylineOperator: tool.Blender.update_viewport() return {"RUNNING_MODAL"} - def get_product_preview_data(self, context: bpy.types.Context, relating_type: ifcopenshell.entity_instance) -> None: - if tool.Model.get_usage_type(relating_type) == "PROFILE": - if relating_type.is_a() in {"IfcColumnType", "IfcPileType"}: - data = get_vertical_profile_preview_data(context, relating_type) - else: - data = get_horizontal_profile_preview_data(context, relating_type) - elif tool.Model.get_usage_type(relating_type) == "LAYER2": - data = get_wall_preview_data(context, relating_type) - elif tool.Model.get_usage_type(relating_type) == "LAYER3": - data = get_slab_preview_data(context, relating_type) - else: - data = get_generic_product_preview_data(context, relating_type) - - # Update properties so it can be used by the decorator - props = tool.Model.get_product_preview_props() - props.verts.clear() - props.edges.clear() - props.tris.clear() - if not data: - return - - for vert in data["verts"]: - v = props.verts.add() - v.value_3d = vert - for edge in data["edges"]: - e = props.edges.add() - e.value_2d = edge - for tri in data["tris"]: - t = props.tris.add() - t.value_3d = tri - def set_offset(self, context: bpy.types.Context, relating_type: ifcopenshell.entity_instance) -> None: props = tool.Model.get_model_props() direction_sense = props.direction_sense diff --git a/src/bonsai/bonsai/bim/module/model/product.py b/src/bonsai/bonsai/bim/module/model/product.py index c08ff9131b..191a9406fe 100644 --- a/src/bonsai/bonsai/bim/module/model/product.py +++ b/src/bonsai/bonsai/bim/module/model/product.py @@ -249,8 +249,6 @@ class DrawOccurrence(bpy.types.Operator, PolylineOperator, tool.Ifc.Operator): if event.value == "RELEASE" and event.type == "LEFTMOUSE": self.create_occurrence(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index ecc1b86163..80c7ccc20e 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -1189,11 +1189,8 @@ class DrawPolylineProfile(bpy.types.Operator, PolylineOperator, tool.Ifc.Operato return {"FINISHED"} self.handle_keyboard_input(context, event) - self.handle_inserting_polyline(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() diff --git a/src/bonsai/bonsai/bim/module/model/prop.py b/src/bonsai/bonsai/bim/module/model/prop.py index b26466aa15..4c3466d325 100644 --- a/src/bonsai/bonsai/bim/module/model/prop.py +++ b/src/bonsai/bonsai/bim/module/model/prop.py @@ -1697,17 +1697,6 @@ class ProductPreviewItem(PropertyGroup): value_2d: tuple[float, float] -class BIMProductPreviewProperties(PropertyGroup): - verts: bpy.props.CollectionProperty(type=ProductPreviewItem) - edges: bpy.props.CollectionProperty(type=ProductPreviewItem) - tris: bpy.props.CollectionProperty(type=ProductPreviewItem) - - if TYPE_CHECKING: - verts: bpy.types.bpy_prop_collection_idprop[ProductPreviewItem] - edges: bpy.types.bpy_prop_collection_idprop[ProductPreviewItem] - tris: bpy.types.bpy_prop_collection_idprop[ProductPreviewItem] - - def update_is_editing(self: "BIMExternalParametricGeometryProperties", context: bpy.types.Context) -> None: if self.is_editing: return diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index 4c9e89bf41..b6046df18d 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -1135,11 +1135,8 @@ class DrawPolylineSlab(bpy.types.Operator, PolylineOperator, tool.Ifc.Operator): return {"FINISHED"} self.handle_keyboard_input(context, event) - self.handle_inserting_polyline(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index d652041125..d343bc75ae 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -787,11 +787,8 @@ class DrawPolylineWall(bpy.types.Operator, PolylineOperator, tool.Ifc.Operator): return {"FINISHED"} self.handle_keyboard_input(context, event) - self.handle_inserting_polyline(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index 2f4c4b77b7..a81681652c 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -66,7 +66,6 @@ if TYPE_CHECKING: BIMRailingProperties, BIMExternalParametricGeometryProperties, BIMPolylineProperties, - BIMProductPreviewProperties, ) @@ -108,11 +107,6 @@ class Model(bonsai.core.tool.Model): assert (scene := bpy.context.scene) return scene.BIMPolylineProperties # pyright: ignore[reportAttributeAccessIssue] - @classmethod - def get_product_preview_props(cls) -> BIMProductPreviewProperties: - assert (scene := bpy.context.scene) - return scene.BIMProductPreviewProperties # pyright: ignore[reportAttributeAccessIssue] - @classmethod def convert_si_to_unit(cls, value: T) -> T: if isinstance(value, (tuple, list)): @@ -2750,3 +2744,20 @@ class Model(bonsai.core.tool.Model): list(nodes_to_update) finally: SvIfcStore.use_bonsai_file = False + + @classmethod + def create_bmesh_from_vertices(cls, vertices, is_closed=False): + bm = bmesh.new() + + new_verts = [bm.verts.new(v) for v in vertices] + if is_closed: + new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] + new_edges.append( + bm.edges.new((new_verts[-1], new_verts[0])) + ) # Add an edge between the last an first point to make it closed. + else: + new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] + + bm.verts.index_update() + bm.edges.index_update() + return bm From db52703ce317c152b0ee677ee4505fde352b9463 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Jan 2026 18:52:27 +1100 Subject: [PATCH 013/171] Revert "Use hide_set() for IfcSpaces instead of hide_viewport" This reverts commit 96fe9b5398e26f6d53c3e7e0dadd4dfc67acf514. This commit contains a logical error where hide_viewport is checked in the if statement but hide_set() is used as the effect. This causes a regression in tests about project visibility. `hide_viewport` is the correct hiding setting to use, because hide_set is more ephemeral and affected by Shift-H, Alt-H etc. --- src/bonsai/bonsai/bim/import_ifc.py | 8 -------- src/bonsai/bonsai/tool/collector.py | 6 ++++-- src/bonsai/bonsai/tool/spatial.py | 8 ++++---- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index 58f6a67065..04dd612a8b 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -290,7 +290,6 @@ class IfcImporter: self.profile_code("Load linked models") self.add_project_to_scene() self.profile_code("Add project to scene") - self.hide_ifc_spaces() if self.ifc_import_settings.should_clean_mesh and len(self.file.by_type("IfcElement")) < 1000: self.clean_mesh() self.profile_code("Mesh cleaning") @@ -1287,13 +1286,6 @@ class IfcImporter: properties={"Aggregate_Index": aggregate_index, "Name": name}, ) - def hide_ifc_spaces(self): - """Hide IfcSpace objects after they've been added to the scene.""" - for ifc_definition_id, obj in self.added_data.items(): - if isinstance(obj, bpy.types.Object): - element = self.file.by_id(ifc_definition_id) - if element.is_a("IfcSpace"): - obj.hide_set(True) class IfcImportSettings: diff --git a/src/bonsai/bonsai/tool/collector.py b/src/bonsai/bonsai/tool/collector.py index 7c46135b26..c357287a6b 100644 --- a/src/bonsai/bonsai/tool/collector.py +++ b/src/bonsai/bonsai/tool/collector.py @@ -50,12 +50,12 @@ class Collector(bonsai.core.tool.Collector): tool.Geometry.lock_object(obj) element = (element.PartOfU or element.PartOfV or element.PartOfW)[0] if not tool.Spatial.get_grid_props().is_visible: - obj.hide_set(True) + obj.hide_viewport = True elif element.is_a("IfcGrid"): if tool.Geometry.is_locked(element): tool.Geometry.lock_object(obj) if not tool.Spatial.get_grid_props().is_visible: - obj.hide_set(True) + obj.hide_viewport = True if element.is_a("IfcProject"): if tool.Geometry.is_locked(element): @@ -71,6 +71,8 @@ class Collector(bonsai.core.tool.Collector): tool.Geometry.lock_object(obj) collection = cls._create_project_child_collection("IfcSpace") cls.link_collection_object_safe(collection, obj) + if not tool.Spatial.get_spatial_props().is_visible: + obj.hide_viewport = True elif element.is_a("IfcStructuralItem"): collection = cls._create_project_child_collection("IfcStructuralItem") cls.link_collection_object_safe(collection, obj) diff --git a/src/bonsai/bonsai/tool/spatial.py b/src/bonsai/bonsai/tool/spatial.py index 6ca29343e9..a177a237e8 100644 --- a/src/bonsai/bonsai/tool/spatial.py +++ b/src/bonsai/bonsai/tool/spatial.py @@ -1213,18 +1213,18 @@ class Spatial(bonsai.core.tool.Spatial): for element in elements: if obj := tool.Ifc.get_object(element): if obj.hide_viewport is True and is_visible: - obj.hide_set(False) + obj.hide_viewport = False elif obj.hide_viewport is False and not is_visible: - obj.hide_set(True) + obj.hide_viewport = True @classmethod def set_grid_visibility(cls, is_visible: bool) -> None: for element in tool.Ifc.get().by_type("IfcGrid") + tool.Ifc.get().by_type("IfcGridAxis"): if obj := tool.Ifc.get_object(element): if obj.hide_viewport is True and is_visible: - obj.hide_set(False) + obj.hide_viewport = False elif obj.hide_viewport is False and not is_visible: - obj.hide_set(True) + obj.hide_viewport = True @classmethod def toggle_spaces_visibility_wired_and_textured(cls, spaces: list[ifcopenshell.entity_instance]) -> None: From 41c6eba193230b7d12f03b8feedcb6bfcfdd1709 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Jan 2026 19:43:37 +1100 Subject: [PATCH 014/171] IfcTester should not check requirements for prohibited specifications --- src/bonsai/bonsai/bim/import_ifc.py | 1 - src/ifctester/ifctester/ids.py | 16 ++++------------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index 04dd612a8b..05bcbed01a 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -1287,7 +1287,6 @@ class IfcImporter: ) - class IfcImportSettings: """ Initialize only using `IfcImportSettings.factory()`. diff --git a/src/ifctester/ifctester/ids.py b/src/ifctester/ifctester/ids.py index ea21aa15fd..d7403e2594 100644 --- a/src/ifctester/ifctester/ids.py +++ b/src/ifctester/ifctester/ids.py @@ -300,23 +300,15 @@ class Specification: if not is_applicable: continue self.applicable_entities.append(element) - for facet in self.requirements: - result = facet(element) - is_pass = bool(result) - if self.maxOccurs != 0: # This is a required or optional specification - if is_pass: + if self.maxOccurs != 0: # Requirements are skipped for prohibited applicability + for facet in self.requirements: + result = facet(element) + if bool(result): self.passed_entities.add(element) facet.passed_entities.add(element) else: self.failed_entities.add(element) facet.failures.append(FacetFailure(element=element, reason=str(result))) - else: # This is a prohibited specification - if is_pass: - self.failed_entities.add(element) - facet.failures.append(FacetFailure(element=element, reason=str(result))) - else: - self.passed_entities.add(element) - facet.passed_entities.add(element) self.status = True for facet in self.requirements: From c33969d589a7d9db044170513183dc80b7fce382 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 21 Jan 2026 16:24:11 +0500 Subject: [PATCH 015/171] ifcsverchok - correct socket type for position --- src/ifcsverchok/nodes/ifc/shape_builder/extrude.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py b/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py index 3b984dd4d7..44fd47cebc 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py @@ -21,6 +21,7 @@ from typing import TYPE_CHECKING, Literal import bpy import ifcopenshell from ifcopenshell.util.shape_builder import ShapeBuilder +from sverchok.core.sockets import SvVerticesSocket from sverchok.data_structure import updateNode from sverchok.node_tree import SverchCustomTreeNode @@ -62,6 +63,7 @@ class SvIfcSbExtrude(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.Sv self.inputs, "Position", data_type="list[list[tuple[float, float, float]]]", + socket_type=SvVerticesSocket, ) helper.create_socket( self.outputs, From 784415e464e87a752e5da4d8811513b749583723 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 21 Jan 2026 16:44:07 +0500 Subject: [PATCH 016/171] ifcsverchok bonsai integration - support editing parametric properties from UI Demo - https://files.catbox.moe/extsxf.mp4 But now it requires ifcsverchok graph to be nested inside a subgroup because we need a way to indicate which graph parameters are important, so user can modify them from Parametric Geometry tab without actually explicitly opening sverchok graph. --- src/bonsai/bonsai/bim/module/model/ui.py | 9 +++++++++ src/bonsai/bonsai/tool/model.py | 11 ++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/model/ui.py b/src/bonsai/bonsai/bim/module/model/ui.py index 86beea6079..ab528fb0fc 100644 --- a/src/bonsai/bonsai/bim/module/model/ui.py +++ b/src/bonsai/bonsai/bim/module/model/ui.py @@ -694,6 +694,15 @@ class BIM_PT_external_parametric_geometry(bpy.types.Panel): print(res) layout.label(text=f"Error Updating from Graph, See System Console", icon="ERROR") + layout.label(text="Parameters:") + box = layout.box() + + group_node = tool.Model.get_ifcsverchok_group_node(props.sverchok_nodes) + node_tree = group_node.node_tree + + for socket, interface_socket in zip(group_node.inputs, node_tree.sockets("INPUT")): + socket.draw_group_property(box, socket.name, interface_socket) + def draw_door_properties(layout: bpy.types.UILayout, props: module_prop.BIMDoorProperties) -> None: """Draw door properties UI (shared between properties panel and preferences).""" diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index a81681652c..28506bd8db 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -67,6 +67,7 @@ if TYPE_CHECKING: BIMExternalParametricGeometryProperties, BIMPolylineProperties, ) + from sverchok.core.node_group import SvGroupTreeNode class Model(bonsai.core.tool.Model): @@ -2565,13 +2566,21 @@ class Model(bonsai.core.tool.Model): return [s for s in group_node.inputs if s.type != "GEOMETRY"] + @classmethod + def get_ifcsverchok_group_node(cls, node_tree: sverchok.node_tree.SverchCustomTree) -> SvGroupTreeNode: + from sverchok.core.node_group import SvGroupTreeNode + + return next(n for n in node_tree.nodes if isinstance(n, SvGroupTreeNode) and n.label == "BBIM_EPG") + @classmethod def get_ifcsverchok_shape_output( cls, node_tree: sverchok.node_tree.SverchCustomTree ) -> ifcsverchok.nodes.ifc.shape_builder.shape_output.SvSbShapeOutput: from ifcsverchok.nodes.ifc.shape_builder.shape_output import SvSbShapeOutput - return next(n for n in node_tree.nodes if isinstance(n, SvSbShapeOutput)) + group_node = cls.get_ifcsverchok_group_node(node_tree) + subtree = group_node.node_tree + return next(n for n in subtree.nodes if isinstance(n, SvSbShapeOutput)) @classmethod def update_mesh_from_sverchok( From 64865c58a5677fac183dd357615dd56614fadbe5 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 21 Jan 2026 16:47:33 +0500 Subject: [PATCH 017/171] remove debug print --- src/bonsai/bonsai/bim/module/model/ui.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/model/ui.py b/src/bonsai/bonsai/bim/module/model/ui.py index ab528fb0fc..0d9aea58cd 100644 --- a/src/bonsai/bonsai/bim/module/model/ui.py +++ b/src/bonsai/bonsai/bim/module/model/ui.py @@ -691,7 +691,6 @@ class BIM_PT_external_parametric_geometry(bpy.types.Panel): # should find a way to update only on graph changes. res = tool.Model.update_mesh_from_sverchok(obj, props.sverchok_nodes) if res is not None: - print(res) layout.label(text=f"Error Updating from Graph, See System Console", icon="ERROR") layout.label(text="Parameters:") From 421d454ce82bc896f16ee8519ef660178cb8887f Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 21 Jan 2026 17:38:26 +0500 Subject: [PATCH 018/171] Fix missing `Literal` import --- src/bonsai/bonsai/bim/module/model/decorator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index 43d770828e..e9435eea99 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -35,7 +35,7 @@ from gpu_extras.presets import draw_circle_2d from typing import Union from bonsai.bim.module.drawing.helper import format_distance from itertools import chain -from typing import Union, Any +from typing import Union, Any, Literal from bpy_extras.view3d_utils import location_3d_to_region_2d From 0cc3ce870924a41ae5abf9456a939a62f186229d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:19:22 +0000 Subject: [PATCH 019/171] Bump tar from 7.5.3 to 7.5.6 in /src/ifctester/webapp Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.3 to 7.5.6. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-tar/compare/v7.5.3...v7.5.6) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.6 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- src/ifctester/webapp/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ifctester/webapp/package-lock.json b/src/ifctester/webapp/package-lock.json index 9b7f5b6058..35d03c74fa 100644 --- a/src/ifctester/webapp/package-lock.json +++ b/src/ifctester/webapp/package-lock.json @@ -2851,9 +2851,9 @@ } }, "node_modules/tar": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.3.tgz", - "integrity": "sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.6.tgz", + "integrity": "sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { From f89cf88bc0974db51384b863c059eeee6e5aee41 Mon Sep 17 00:00:00 2001 From: falken10vdl <33285113+falken10vdl@users.noreply.github.com> Date: Wed, 21 Jan 2026 23:26:18 +0100 Subject: [PATCH 020/171] Add use_factory_startup to src/bonsai/test/bim/test_feature.py def an_empty_blender_session() This addresses https://github.com/IfcOpenShell/IfcOpenShell/issues/7590 Cheers! --- src/bonsai/test/bim/test_feature.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/test/bim/test_feature.py b/src/bonsai/test/bim/test_feature.py index 64d7e7cb27..036e0bf464 100644 --- a/src/bonsai/test/bim/test_feature.py +++ b/src/bonsai/test/bim/test_feature.py @@ -337,7 +337,7 @@ def an_untestable_scenario(): def an_empty_blender_session(): IfcStore.purge() if not PYTEST_BLENDER_NO_BACKGROUND: - bpy.ops.wm.read_homefile(app_template="") + bpy.ops.wm.read_homefile(app_template="", use_factory_startup=True) if len(bpy.data.objects) > 0: bpy.data.batch_remove(bpy.data.objects) bpy.ops.outliner.orphans_purge(do_local_ids=True, do_linked_ids=True, do_recursive=True) From aafa1b95e854f9881202e071c3e6271fcf28b44a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Mell=C3=BCh?= <74136980+c-mellueh@users.noreply.github.com> Date: Thu, 22 Jan 2026 00:19:09 +0100 Subject: [PATCH 021/171] bSDD Add new class properties and relations API Endpoints (#7502) * black . * add typing * move function * add get_class_relations * add test for class relation --------- Co-authored-by: Dion Moult --- src/bsdd/bsdd.py | 122 ++++++++++++++++++++++++++++++++++++ src/bsdd/tests/test_bsdd.py | 16 +++++ 2 files changed, 138 insertions(+) diff --git a/src/bsdd/bsdd.py b/src/bsdd/bsdd.py index 87154855ae..ff633095bf 100644 --- a/src/bsdd/bsdd.py +++ b/src/bsdd/bsdd.py @@ -184,6 +184,78 @@ class ClassPropertyContractV1(TypedDict): qudtCodes: NotRequired[list[str]] +class ClassRelationItemContractV1(TypedDict): + relationType: str + classUri: str + className: NotRequired[str] + fraction: NotRequired[float] + dictionaryUri: NotRequired[str] + + +class ClassRelationsContractV1(TypedDict): + totalCount: NotRequired[int] + offset: NotRequired[int] + count: NotRequired[int] + classUri: NotRequired[str] + areReversedRelations: NotRequired[bool] + classRelations: NotRequired[list[ClassRelationItemContractV1]] + + +class ClassPropertiesContractV1(TypedDict): + classUri: NotRequired[str] + totalCount: NotRequired[int] + offset: NotRequired[int] + count: NotRequired[int] + classProperties: list[ClassPropertyContractV1] + + +class ClassPropertyItemContractV1(TypedDict): + name: str + propertySet: str + uri: str + description: NotRequired[str] + definition: NotRequired[str] + dataType: NotRequired[str] + dimension: NotRequired[str] + dimensionLength: NotRequired[int] + dimensionMass: NotRequired[int] + dimensionTime: NotRequired[int] + dimensionElectricCurrent: NotRequired[int] + dimensionThermodynamicTemperature: NotRequired[int] + dimensionAmountOfSubstance: NotRequired[int] + dimensionLuminousIntensity: NotRequired[int] + dynamicParameterPropertyCodes: NotRequired[list[str]] + example: NotRequired[str] + isDynamic: NotRequired[bool] + isRequired: NotRequired[bool] + isWritable: NotRequired[bool] + maxExclusive: NotRequired[float] + maxInclusive: NotRequired[float] + minExclusive: NotRequired[float] + minInclusive: NotRequired[float] + pattern: NotRequired[str] + physicalQuantity: NotRequired[str] + allowedValues: NotRequired[list[ClassPropertyValueItemContractV1]] + predefinedValue: NotRequired[str] + propertyCode: NotRequired[str] + propertyDictionaryName: NotRequired[str] + propertyDictionaryUri: NotRequired[str] + propertyUri: NotRequired[str] + propertyStatus: NotRequired[str] + propertyValueKind: NotRequired[str] + symbol: NotRequired[str] + units: NotRequired[list[str]] + qudtCodes: NotRequired[list[str]] + + +class ClassPropertyValueItemContractV1(TypedDict): + uri: NotRequired[str] + code: NotRequired[str] + value: str + description: NotRequired[str] + sortNumber: NotRequired[int] + + class PropertyContractV5(TypedDict): dictionaryUri: NotRequired[str] activationDateUtc: str @@ -710,6 +782,56 @@ class Client: params = {k: v for k, v in params.items() if v is not None} return self.get(endpoint, params) + def get_class_relations( + self, + class_uri: str, + get_reverse_relations: bool = False, + search_text: str = "", + offset: int = 0, + limit: int = 1000, + language_code: str = "", + version=1, + ) -> ClassRelationsContractV1: + """ + Get class relations or reverse relations (paginated) + """ + endpoint = f"Class/Relations/v{version}" + params = { + "ClassUri": class_uri, + "GetReverseRelations": get_reverse_relations, + "SearchText": search_text, + "Offset": offset, + "Limit": limit, + "languageCode": language_code, + } + return self.get(endpoint, params) + + def get_class_properties( + self, + class_uri: str, + property_set: str = "", + property_code: str = "", + search_text: str = "", + offset: int = 0, + limit: int = 1000, + language_code: str = "", + version=1, + ) -> ClassPropertiesContractV1: + """ + Get class properties (paginated) + """ + endpoint = f"Class/Properties/v{version}" + params = { + "ClassUri": class_uri, + "PropertySet": property_set, + "PropertyCode": property_code, + "SearchText": search_text, + "Offset": offset, + "Limit": limit, + "languageCode": language_code, + } + return self.get(endpoint, params) + def get_property(self, uri, language_code="", version: int = 5) -> PropertyContractV5: """ Get Property details. diff --git a/src/bsdd/tests/test_bsdd.py b/src/bsdd/tests/test_bsdd.py index aea17b9eb9..9dab01025c 100644 --- a/src/bsdd/tests/test_bsdd.py +++ b/src/bsdd/tests/test_bsdd.py @@ -37,6 +37,22 @@ def test_get_class(): ] +def test_get_class_relations(): + uri_light_fixture = next(l for l in get_ifc_classes()["classes"] if "IfcLightFixture" == l["code"])["uri"] + ifc4x3_light_fixture_relations = client.get_class_properties(uri_light_fixture, True) + assert "Electrical unit for light-line system" and "Tubelight system" in [ + r["className"] for r in ifc4x3_light_fixture_relations["classRelations"] + ] + + +def test_get_class_properties(): + uri_light_fixture = next(l for l in get_ifc_classes()["classes"] if "IfcLightFixture" == l["code"])["uri"] + ifc4x3_light_fixture_properties = client.get_class_properties(uri_light_fixture) + assert "Maintenance Factor" and "Light Fixture Mounting Type" in [ + l["name"] for l in ifc4x3_light_fixture_properties["classProperties"] + ] + + def test_search_class(): ss_heat_pump_sys = client.search_class("Ss_60_40_36", [nbs_uri]) li = [l + "source heat pump systems" for l in ["Air ", "Ground ", "Water "]] From a3801a0ce96ef42f5b1819705309ddf6b15163a2 Mon Sep 17 00:00:00 2001 From: Vincent Cadoret Date: Wed, 24 Dec 2025 16:22:26 -0500 Subject: [PATCH 022/171] Fix UnboundLocalError in reporter.py cardinality assignment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The report_specification() method in the Json reporter class was raising an UnboundLocalError when processing IDS specifications with certain minOccurs/maxOccurs combinations that weren't explicitly handled. Problem: The cardinality variable was only assigned for three specific cases: - minOccurs=1, maxOccurs="unbounded" → "required" - minOccurs=0, maxOccurs="unbounded" → "optional" - minOccurs=0, maxOccurs=0 → "prohibited" However, the IDS schema allows other valid combinations such as: - minOccurs=0, maxOccurs=1 (commonly used for optional specifications) - minOccurs=1, maxOccurs=1 (exactly one occurrence required) - Any other valid XML Schema cardinality values When processing IDS files with these combinations, the cardinality variable remained unassigned, causing an UnboundLocalError at line 382 when attempting to use it in ResultsSpecification(). Solution: Added fallback logic to handle all valid IDS cardinality combinations: - If minOccurs >= 1: cardinality = "required" (must occur at least once) - Otherwise (minOccurs == 0): cardinality = "optional" (may occur) This maintains semantic compatibility with the existing codebase, which expects cardinality to be one of the semantic strings ("required", "optional", "prohibited") rather than numeric ranges. This is critical for: - HTML template rendering (line 457: .capitalize()) - Conditional logic for skipped specs (line 454) - UI rendering for prohibited specs (line 456) Testing: - Tested with IDS file containing minOccurs=0 without explicit maxOccurs (defaults to 1 per XML Schema specification) - Validation now completes successfully without UnboundLocalError - HTML report generation works correctly with semantic cardinality labels - Maintains backward compatibility with existing IDS files Fixes: Validation failure when using valid IDS cardinality combinations --- src/ifctester/ifctester/reporter.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ifctester/ifctester/reporter.py b/src/ifctester/ifctester/reporter.py index 220d0f96a9..84684a10a2 100644 --- a/src/ifctester/ifctester/reporter.py +++ b/src/ifctester/ifctester/reporter.py @@ -367,6 +367,12 @@ class Json(Reporter): cardinality = "optional" elif specification.minOccurs == 0 and specification.maxOccurs == 0: cardinality = "prohibited" + elif specification.minOccurs >= 1: + # Any minimum occurrence >= 1 means the specification is required + cardinality = "required" + else: + # minOccurs == 0 with any other maxOccurs value means optional + cardinality = "optional" return ResultsSpecification( name=specification.name, From 4da0b04162aa98784ca768184148b0ee1bea15e8 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Mon, 28 Jul 2025 23:48:36 +0200 Subject: [PATCH 023/171] add adjunt_overlapping_labels --- .../bonsai/bim/module/model/decorator.py | 147 +++++++++++++----- 1 file changed, 108 insertions(+), 39 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index e9435eea99..b45c50b623 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -521,6 +521,10 @@ class PolylineDecorator: color = self.addon_prefs.decorations_colour blf.color(self.font_id, *color) + + screen_coords = {} + label_index = 0 + for i in range(len(self.polyline_points)): if i < 1 and self.measure_type == "POLY_AREA": continue @@ -529,39 +533,39 @@ class PolylineDecorator: dim_text_pos = (Vector(self.polyline_points[i].position) + Vector(self.polyline_points[i - 1].position)) / 2 dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) - formatted_value = self.polyline_points[i].dim + if dim_text_coords: + formatted_value = self.polyline_points[i].dim + text = "d: " + formatted_value + screen_coords[f"distance_{label_index}"] = (dim_text_coords, text) + label_index += 1 - blf.position(self.font_id, dim_text_coords[0], dim_text_coords[1], 0) - text = "d: " + formatted_value - text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, dim_text_coords, text_length) - blf.draw(self.font_id, text) + if self.measure_type != "SINGLE": + for i in range(len(self.polyline_points)): + if i ==1: + continue - if i == 1: - continue - angle_text_pos = Vector(self.polyline_points[i - 1].position) - angle_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, angle_text_pos) - blf.position(self.font_id, angle_text_coords[0], angle_text_coords[1], 0) - text = "a: " + self.polyline_points[i].angle - text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, angle_text_coords, text_length) - blf.draw(self.font_id, text) + angle_text_pos = Vector(self.polyline_points[i - 1].position) + angle_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, angle_text_pos) + + if angle_text_coords: + text = "a: " + self.polyline_points[i].angle + screen_coords[f"angle_{label_index}"] = (angle_text_coords, text) + label_index += 1 if self.measure_type == "SINGLE": axis_line, axis_line_center = self.calculate_measurement_x_y_and_z(context) - for i, dim_text_pos in enumerate(axis_line_center): - dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) - pos = blf.position(self.font_id, dim_text_coords[0], dim_text_coords[1], 0) - value = round((axis_line[i][1] - axis_line[i][0]).length, 4) - direction = axis_line[i][1] - axis_line[i][0] - if (i == 0 and direction.x < 0) or (i == 1 and direction.y < 0) or (i == 2 and direction.z < 0): - value = -value - prefix = "xyz"[i] - formatted_value = tool.Polyline.format_input_ui_units(value) - text = f"{prefix}: {formatted_value}" - text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, dim_text_coords, text_length) - blf.draw(self.font_id, text) + if axis_line and axis_line_center: + for i, dim_text_pos in enumerate(axis_line_center): + dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) + if dim_text_coords: + value = round((axis_line[i][1] - axis_line[i][0]).length, 4) + direction = axis_line[i][1] - axis_line[i][0] + if (i == 0 and direction.x < 0) or (i == 1 and direction.y < 0) or (i == 2 and direction.z < 0): + value = -value + prefix = "xyz"[i] + formatted_value = tool.Polyline.format_input_ui_units(value) + text = f"{prefix}: {formatted_value}" + screen_coords[f"xyz_{i}"] = (dim_text_coords, text) # Area and Length text polyline_verts = [Vector((p.x, p.y, p.z)) for p in self.polyline_points] @@ -576,28 +580,93 @@ class PolylineDecorator: polyline_verts[:-1] ) # Doesn't use the last point if is a closed polyline area_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, center) - value = self.polyline_data.area - text = f"area: {value}" - text_length = blf.dimensions(self.font_id, text) - area_text_coords[0] -= text_length[0] / 2 # Center text horizontally - blf.position(self.font_id, area_text_coords[0], area_text_coords[1], 0) - self.draw_text_background(context, area_text_coords, text_length) - blf.draw(self.font_id, text) + if area_text_coords: + value = self.polyline_data.area + text = f"area: {value}" + screen_coords["area"] = (area_text_coords, text) # Length if self.measure_type in {"POLYLINE", "POLY_AREA"}: if len(polyline_verts) < 3: return total_length_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, polyline_verts[-1]) - blf.position(self.font_id, total_length_text_coords[0], total_length_text_coords[1], 0) - value = self.polyline_data.total_length - text = f"length: {value}" + if total_length_text_coords: + value = self.polyline_data.total_length + text = f"length: {value}" + screen_coords["length"] = (total_length_text_coords, text) + + self.adjust_overlapping_labels(screen_coords) + + for label_key, (screen_co, text) in screen_coords.items(): + blf.position(self.font_id, screen_co.x, screen_co.y, 0) + blf.color(self.font_id, 1, 1, 1, 1) text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, total_length_text_coords, text_length) + self.draw_text_background(context, screen_co, text_length) blf.draw(self.font_id, text) blf.disable(self.font_id, blf.SHADOW) + def adjust_overlapping_labels(self, screen_coords): + font_id = self.font_id + text_dimensions = {} + + for label_key, (screen_co, text) in screen_coords.items(): + text_dimensions[label_key] = blf.dimensions(font_id, text) + + min_spacing = 12 + + label_keys = list(screen_coords.keys()) + for pass_num in range(3): # 3 passes to try to optimize complex overlaps + for i in range(len(label_keys)): + for j in range(i + 1, len(label_keys)): + key1, key2 = label_keys[i], label_keys[j] + co1, _ = screen_coords[key1] + co2, _ = screen_coords[key2] + dim1 = text_dimensions[key1] + dim2 = text_dimensions[key2] + + bounds1 = { + "left": co1.x - min_spacing, + "right": co1.x + dim1[0] + min_spacing, + "top": co1.y + dim1[1] + min_spacing, + "bottom": co1.y - min_spacing, + } + bounds2 = { + "left": co2.x - min_spacing, + "right": co2.x + dim2[0] + min_spacing, + "top": co2.y + dim2[1] + min_spacing, + "bottom": co2.y - min_spacing, + } + + if ( + bounds1["left"] < bounds2["right"] + and bounds1["right"] > bounds2["left"] + and bounds1["bottom"] < bounds2["top"] + and bounds1["top"] > bounds2["bottom"] + ): + x_overlap = min(bounds1["right"], bounds2["right"]) - max(bounds1["left"], bounds2["left"]) + y_overlap = min(bounds1["top"], bounds2["top"]) - max(bounds1["bottom"], bounds2["bottom"]) + + separation_multiplier = 1.25 + + # Move labels in the direction requiring less movement + if x_overlap < y_overlap: + separation_distance = (x_overlap / 2 + min_spacing) * separation_multiplier + if co1.x < co2.x: + co1.x -= separation_distance + co2.x += separation_distance + else: + co1.x += separation_distance + co2.x -= separation_distance + else: + separation_distance = (y_overlap / 2 + min_spacing) * separation_multiplier + if co1.y < co2.y: + co1.y -= separation_distance + co2.y += separation_distance + else: + co1.y += separation_distance + co2.y -= separation_distance + def draw_measurements_poly(self, context): self.shader_config(context) polyline_verts: list[Vector] = [] From 3c3525f205bfb3adf0a080f0a108b0ef1d08df13 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Thu, 25 Sep 2025 00:53:00 +0200 Subject: [PATCH 024/171] display angles and area/length values conditionally based on polyline points --- .../bonsai/bim/module/model/decorator.py | 52 +++++++++---------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index b45c50b623..54861e6591 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -539,19 +539,19 @@ class PolylineDecorator: screen_coords[f"distance_{label_index}"] = (dim_text_coords, text) label_index += 1 - if self.measure_type != "SINGLE": + # --- Show angles for polyline/poly area --- + if self.measure_type != "SINGLE" and len(self.polyline_points) > 2: for i in range(len(self.polyline_points)): - if i ==1: + if i == 0 or i == len(self.polyline_points) - 1: continue - - angle_text_pos = Vector(self.polyline_points[i - 1].position) + angle_text_pos = Vector(self.polyline_points[i].position) angle_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, angle_text_pos) - if angle_text_coords: - text = "a: " + self.polyline_points[i].angle - screen_coords[f"angle_{label_index}"] = (angle_text_coords, text) - label_index += 1 + text = "a: " + self.polyline_points[i+1].angle + screen_coords[f"angle_{i}"] = (angle_text_coords, text) + + # --- Show XYZ axis values for single measurement --- if self.measure_type == "SINGLE": axis_line, axis_line_center = self.calculate_measurement_x_y_and_z(context) if axis_line and axis_line_center: @@ -567,33 +567,29 @@ class PolylineDecorator: text = f"{prefix}: {formatted_value}" screen_coords[f"xyz_{i}"] = (dim_text_coords, text) - # Area and Length text + #Area and Length text polyline_verts = [Vector((p.x, p.y, p.z)) for p in self.polyline_points] # Area if self.measure_type == "POLY_AREA" and self.polyline_data.area: - if len(polyline_verts) < 3: - return - center = sum(polyline_verts, Vector()) / len(polyline_verts) # Center between all polyline points - if polyline_verts[0] == polyline_verts[-1]: - center = sum(polyline_verts[:-1], Vector()) / len( - polyline_verts[:-1] - ) # Doesn't use the last point if is a closed polyline - area_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, center) - if area_text_coords: - value = self.polyline_data.area - text = f"area: {value}" - screen_coords["area"] = (area_text_coords, text) + if len(polyline_verts) >= 3: + center = sum(polyline_verts, Vector()) / len(polyline_verts) + if polyline_verts[0] == polyline_verts[-1]: + center = sum(polyline_verts[:-1], Vector()) / len(polyline_verts[:-1]) + area_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, center) + if area_text_coords: + value = self.polyline_data.area + text = f"area: {value}" + screen_coords["area"] = (area_text_coords, text) # Length if self.measure_type in {"POLYLINE", "POLY_AREA"}: - if len(polyline_verts) < 3: - return - total_length_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, polyline_verts[-1]) - if total_length_text_coords: - value = self.polyline_data.total_length - text = f"length: {value}" - screen_coords["length"] = (total_length_text_coords, text) + if len(polyline_verts) >= 3: + total_length_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, polyline_verts[-1]) + if total_length_text_coords: + value = self.polyline_data.total_length + text = f"length: {value}" + screen_coords["length"] = (total_length_text_coords, text) self.adjust_overlapping_labels(screen_coords) From 587fc638432da98a489308a6fef8128db38184d4 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Thu, 25 Sep 2025 09:05:32 +0200 Subject: [PATCH 025/171] Refactor PolylineDecorator to simplify label indexing and improve text spacing calculation --- src/bonsai/bonsai/bim/module/model/decorator.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index 54861e6591..9152743e12 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -523,7 +523,6 @@ class PolylineDecorator: blf.color(self.font_id, *color) screen_coords = {} - label_index = 0 for i in range(len(self.polyline_points)): if i < 1 and self.measure_type == "POLY_AREA": @@ -536,9 +535,7 @@ class PolylineDecorator: if dim_text_coords: formatted_value = self.polyline_points[i].dim text = "d: " + formatted_value - screen_coords[f"distance_{label_index}"] = (dim_text_coords, text) - label_index += 1 - + screen_coords[f"distance_{i}"] = (dim_text_coords, text) # --- Show angles for polyline/poly area --- if self.measure_type != "SINGLE" and len(self.polyline_points) > 2: for i in range(len(self.polyline_points)): @@ -609,7 +606,11 @@ class PolylineDecorator: for label_key, (screen_co, text) in screen_coords.items(): text_dimensions[label_key] = blf.dimensions(font_id, text) - min_spacing = 12 + if text_dimensions: + first_height = next(iter(text_dimensions.values()))[1] + min_spacing = max(2, first_height * 0.3) + else: + min_spacing = 2 label_keys = list(screen_coords.keys()) for pass_num in range(3): # 3 passes to try to optimize complex overlaps From 84d55d896916afa3116f11a22f1b2a00dfb88481 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Thu, 25 Sep 2025 09:38:24 +0200 Subject: [PATCH 026/171] cleanup --- .../bonsai/bim/module/model/decorator.py | 83 ++++++++++--------- 1 file changed, 42 insertions(+), 41 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index 9152743e12..00e733b397 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -531,62 +531,63 @@ class PolylineDecorator: continue dim_text_pos = (Vector(self.polyline_points[i].position) + Vector(self.polyline_points[i - 1].position)) / 2 dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) - if dim_text_coords: formatted_value = self.polyline_points[i].dim text = "d: " + formatted_value - screen_coords[f"distance_{i}"] = (dim_text_coords, text) - # --- Show angles for polyline/poly area --- - if self.measure_type != "SINGLE" and len(self.polyline_points) > 2: - for i in range(len(self.polyline_points)): - if i == 0 or i == len(self.polyline_points) - 1: - continue - angle_text_pos = Vector(self.polyline_points[i].position) - angle_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, angle_text_pos) - if angle_text_coords: - text = "a: " + self.polyline_points[i+1].angle - screen_coords[f"angle_{i}"] = (angle_text_coords, text) + screen_coords[f"distance_{i}"] = (Vector(dim_text_coords), text) + if i == 1: + continue + angle_text_pos = Vector(self.polyline_points[i - 1].position) + angle_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, angle_text_pos) + if angle_text_coords: + text = "a: " + self.polyline_points[i].angle + screen_coords[f"angle_{i}"] = (Vector(angle_text_coords), text) - # --- Show XYZ axis values for single measurement --- if self.measure_type == "SINGLE": axis_line, axis_line_center = self.calculate_measurement_x_y_and_z(context) - if axis_line and axis_line_center: - for i, dim_text_pos in enumerate(axis_line_center): - dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) - if dim_text_coords: - value = round((axis_line[i][1] - axis_line[i][0]).length, 4) - direction = axis_line[i][1] - axis_line[i][0] - if (i == 0 and direction.x < 0) or (i == 1 and direction.y < 0) or (i == 2 and direction.z < 0): - value = -value - prefix = "xyz"[i] - formatted_value = tool.Polyline.format_input_ui_units(value) - text = f"{prefix}: {formatted_value}" - screen_coords[f"xyz_{i}"] = (dim_text_coords, text) + for i, dim_text_pos in enumerate(axis_line_center): + dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) + if dim_text_coords: + value = round((axis_line[i][1] - axis_line[i][0]).length, 4) + direction = axis_line[i][1] - axis_line[i][0] + if (i == 0 and direction.x < 0) or (i == 1 and direction.y < 0) or (i == 2 and direction.z < 0): + value = -value + prefix = "xyz"[i] + formatted_value = tool.Polyline.format_input_ui_units(value) + text = f"{prefix}: {formatted_value}" + screen_coords[f"xyz_{i}"] = (Vector(dim_text_coords), text) - #Area and Length text + # Area and Length text polyline_verts = [Vector((p.x, p.y, p.z)) for p in self.polyline_points] # Area if self.measure_type == "POLY_AREA" and self.polyline_data.area: - if len(polyline_verts) >= 3: - center = sum(polyline_verts, Vector()) / len(polyline_verts) - if polyline_verts[0] == polyline_verts[-1]: - center = sum(polyline_verts[:-1], Vector()) / len(polyline_verts[:-1]) - area_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, center) - if area_text_coords: - value = self.polyline_data.area - text = f"area: {value}" - screen_coords["area"] = (area_text_coords, text) + if len(polyline_verts) < 3: + blf.disable(self.font_id, blf.SHADOW) + return + center = sum(polyline_verts, Vector()) / len(polyline_verts) + if polyline_verts[0] == polyline_verts[-1]: + center = sum(polyline_verts[:-1], Vector()) / len(polyline_verts[:-1]) + area_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, center) + if area_text_coords: + value = self.polyline_data.area + text = f"area: {value}" + text_length = blf.dimensions(self.font_id, text) + area_text_coords = list(area_text_coords) + area_text_coords[0] -= text_length[0] / 2 + screen_coords["area"] = (Vector(area_text_coords), text) # Length if self.measure_type in {"POLYLINE", "POLY_AREA"}: - if len(polyline_verts) >= 3: - total_length_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, polyline_verts[-1]) - if total_length_text_coords: - value = self.polyline_data.total_length - text = f"length: {value}" - screen_coords["length"] = (total_length_text_coords, text) + if len(polyline_verts) < 3: + blf.disable(self.font_id, blf.SHADOW) + return + total_length_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, polyline_verts[-1]) + if total_length_text_coords: + value = self.polyline_data.total_length + text = f"length: {value}" + screen_coords["length"] = (Vector(total_length_text_coords), text) self.adjust_overlapping_labels(screen_coords) From 4c47eb573aa66e617696fcc5bf311be8a0d45722 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 22 Jan 2026 11:18:35 +1100 Subject: [PATCH 027/171] Improve IDS static HTML reporter to report list of prohibited entities (they aren't passes or fails, just prohibited applicability) --- src/ifctester/ifctester/reporter.py | 24 +++++++++++ src/ifctester/ifctester/templates/report.html | 40 ++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/src/ifctester/ifctester/reporter.py b/src/ifctester/ifctester/reporter.py index 84684a10a2..e99e13ea8f 100644 --- a/src/ifctester/ifctester/reporter.py +++ b/src/ifctester/ifctester/reporter.py @@ -85,6 +85,7 @@ class ResultsSpecification(TypedDict): total_applicable: int total_applicable_pass: int total_applicable_fail: int + applicable_entities: list[ResultsEntity] percent_applicable_pass: ResultsPercent total_checks: int total_checks_pass: int @@ -383,6 +384,7 @@ class Json(Reporter): total_applicable=total_applicable, total_applicable_pass=total_applicable_pass, total_applicable_fail=total_applicable - total_applicable_pass, + applicable_entities=self.report_applicable_entities(specification), percent_applicable_pass=percent_applicable_pass, total_checks=total_checks, total_checks_pass=total_checks_pass, @@ -393,6 +395,24 @@ class Json(Reporter): requirements=requirements, ) + def report_applicable_entities(self, specification: Specification) -> list[ResultsEntity]: + return [ + ResultsEntity( + { + "element": e, + "element_type": ifcopenshell.util.element.get_type(e), + "class": e.is_a(), + "predefined_type": ifcopenshell.util.element.get_predefined_type(e), + "name": getattr(e, "Name", None), + "description": getattr(e, "Description", None), + "id": e.id(), + "global_id": getattr(e, "GlobalId", None), + "tag": getattr(e, "Tag", None), + } + ) + for e in specification.applicable_entities + ] + def report_passed_entities(self, requirement: Facet) -> list[ResultsEntity]: return [ ResultsEntity( @@ -459,6 +479,10 @@ class Html(Json): spec["is_prohibited"] = spec["cardinality"] == "prohibited" spec["cardinality"] = spec["cardinality"].capitalize() spec["has_requirements"] = bool(spec["requirements"]) + total_applicable_entities = len(spec["applicable_entities"]) + spec["applicable_entities"] = self.limit_entities(spec["applicable_entities"]) + spec["has_omitted_applicable"] = total_applicable_entities > self.entity_limit + spec["total_omitted_applicable"] = total_applicable_entities - self.entity_limit for requirement in spec["requirements"]: total_passed_entities = len(requirement["passed_entities"]) total_failed_entities = len(requirement["failed_entities"]) diff --git a/src/ifctester/ifctester/templates/report.html b/src/ifctester/ifctester/templates/report.html index 456e90e5f4..51beb5c0f5 100644 --- a/src/ifctester/ifctester/templates/report.html +++ b/src/ifctester/ifctester/templates/report.html @@ -152,7 +152,6 @@

Requirements

- {{/has_requirements}}
    {{#requirements}}
  1. @@ -252,6 +251,45 @@
  2. {{/requirements}}
+ {{/has_requirements}} + {{#is_prohibited}} + {{#total_applicable}} + + + + + + + + + + + + + {{#applicable_entities}} + + + + + + + + + {{#extra_of_type}} + + + + {{/extra_of_type}} + {{/applicable_entities}} + {{#has_omitted_applicable}} + + + + {{/has_omitted_applicable}} + +
ClassPredefinedTypeNameDescriptionGlobalIdTag
{{class}}{{predefined_type}}{{name}}{{description}}{{global_id}}{{tag}}
... {{extra_of_type}} more of the same element type ({{type_name}} with Tag {{type_tag}} and GlobalId {{type_global_id}}) not shown ...
... {{total_omitted_applicable}} more failing elements not shown out of {{total_applicable}} total ...
+ {{/total_applicable}} + {{/is_prohibited}} {{/specifications}} From c2cc6f80be80a4251a3e9a5c00209f8c51e7148a Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 22 Jan 2026 14:36:46 +1100 Subject: [PATCH 028/171] IfcTester webapp now shows prohibited more clearly - is_skipped is calculated upstream instead of reimplementing logic - the viewer now shows cardinality (not just in edit mode) to make it clear what the requirements are - prohibited specs are not allowed to have any requirements, so that section is hidden - failed prohibited specs now shows list of failed (applicable) entities --- src/ifctester/ifctester/reporter.py | 4 +- .../webapp/src/pages/Home/IdsViewer.svelte | 140 +++++++++++++++--- 2 files changed, 124 insertions(+), 20 deletions(-) diff --git a/src/ifctester/ifctester/reporter.py b/src/ifctester/ifctester/reporter.py index e99e13ea8f..38b3ba8f5b 100644 --- a/src/ifctester/ifctester/reporter.py +++ b/src/ifctester/ifctester/reporter.py @@ -81,6 +81,7 @@ class ResultsSpecification(TypedDict): description: str instructions: str status: bool + is_skipped: bool is_ifc_version: bool total_applicable: int total_applicable_pass: int @@ -380,6 +381,7 @@ class Json(Reporter): description=specification.description, instructions=specification.instructions, status=specification.status, + is_skipped=cardinality == "optional" and total_checks == 0, is_ifc_version=specification.is_ifc_version, total_applicable=total_applicable, total_applicable_pass=total_applicable_pass, @@ -474,8 +476,6 @@ class Html(Json): def report(self) -> None: super().report() for spec in self.results["specifications"]: - if spec["cardinality"] == "optional" and spec["total_checks"] == 0: - spec["is_skipped"] = True spec["is_prohibited"] = spec["cardinality"] == "prohibited" spec["cardinality"] = spec["cardinality"].capitalize() spec["has_requirements"] = bool(spec["requirements"]) diff --git a/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte b/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte index e9645e0984..2fda5f0c2c 100644 --- a/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte +++ b/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte @@ -50,13 +50,7 @@ function getSpecificationStatus(specIndex, auditData) { const spec = auditData.specifications[specIndex]; if (!spec) return null; - - // If no applicable elements and no checks, and it passed, it's actually skipped - if (spec.total_applicable === 0 && spec.total_checks === 0 && spec.status === true) { - return 'skipped'; - } - - return spec.status; + return spec.is_skipped ? 'skipped' : spec.status; } function getSpecificationStats(specIndex, auditData) { @@ -79,11 +73,13 @@ const status = getSpecificationStatus(specIndex, auditData); if (status === 'skipped') { - return "Skipped because no applicable entities were found and the cardinality is OPTIONAL or PROHIBITED"; + return "Skipped because no applicable entities were found and the cardinality is OPTIONAL"; } if (status === false) { // Failed - if (spec.total_applicable === 0) { + if (spec.cardinality === 'prohibited') { + return `Failed because ${spec.total_applicable} prohibited entities were found`; + } else if (spec.total_applicable === 0) { return "Failed because no applicable entities were found but the cardinality is REQUIRED"; } else { const failedChecks = spec.total_checks - spec.total_checks_pass; @@ -240,19 +236,30 @@ {#if "@description" in spec}

{spec["@description"]}

{/if} +
+ {#if spec.applicability["@minOccurs"] === 1 && spec.applicability["@maxOccurs"] === 'unbounded'} + Required + {/if} + {#if spec.applicability["@minOccurs"] === 0 && spec.applicability["@maxOccurs"] === 'unbounded'} + Optional + {/if} + {#if spec.applicability["@minOccurs"] === 0 && spec.applicability["@maxOccurs"] === 0} + Prohibited + {/if} + {#if auditReport} + {@const stats = getSpecificationStats(index, auditReport.data)} + {@const status = getSpecificationStatus(index, auditReport.data)} + {#if stats && spec.applicability["@maxOccurs"] !== 0 && status !== 'skipped'} + Checks: {stats.checksPassed}/{stats.checksTotal} + Requirements: {stats.requirementsPassed}/{stats.requirements} + {/if} + {/if} +
{#if auditReport} {@const reason = getSpecificationReason(index, auditReport.data)} {#if reason}

{reason}

{/if} - {@const stats = getSpecificationStats(index, auditReport.data)} - {@const status = getSpecificationStatus(index, auditReport.data)} - {#if stats && status !== 'skipped'} -
- Checks: {stats.checksPassed}/{stats.checksTotal} - Requirements: {stats.requirementsPassed}/{stats.requirements} -
- {/if} {/if}
@@ -292,9 +299,105 @@ {/if} {/each}
+ + {#if auditReport} + {@const status = getSpecificationStatus(index, auditReport.data)} + {#if ! status && spec.applicability["@maxOccurs"] == 0} + {@const specReport = auditReport.data.specifications[index]} +
+ {#if specReport.applicable_entities && specReport.applicable_entities.length > 0} +
+

Failed Elements ({specReport.applicable_entities.length})

+
+ + + + + + + + + + + + + + + {#each specReport.applicable_entities.slice(0, 10) as entity} + + + + + + + + + + {/each} + {#if specReport.applicable_entities.length > 10} + + + + {/if} + +
ClassPredefinedTypeNameDescriptionWarningGlobalIdTag
{entity.class}{entity.predefined_type || '-'} + + +
{entity.name || '-'}
+
+ +

{entity.name || '-'}

+
+
+
+ + +
{entity.description || '-'}
+
+ +

{entity.description || '-'}

+
+
+
+ + +
{entity.reason || '-'}
+
+ +

{entity.reason || '-'}

+
+
+
+ + +
{entity.global_id || '-'}
+
+ +

{entity.global_id || '-'}

+
+
+
+ + +
{entity.tag || '-'}
+
+ +

{entity.tag || '-'}

+
+
+
... {specReport.applicable_entities.length - 10} more failing elements not shown ...
+
+
+
+ {/if} +
+ + {/if} + {/if} + {#if Array.isArray(spec.requirements) && spec.requirements.length > 0}

Requirements

@@ -497,6 +600,7 @@ {/each}
+ {/if} {/if} @@ -1128,4 +1232,4 @@ white-space: nowrap; cursor: pointer; } - \ No newline at end of file + From 247f0c41d96ff59d58edfbdf21693417652a3e10 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jan 2026 15:32:04 +1100 Subject: [PATCH 029/171] Increase default deflection tolerance to improve performance This only results in a lower resolution for things like advanced brep geometry which isn't a biggie (I'll eat my words later) --- src/bonsai/bonsai/bim/import_ifc.py | 2 +- src/bonsai/bonsai/bim/module/project/prop.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index 05bcbed01a..d8ecfd6894 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -1303,7 +1303,7 @@ class IfcImportSettings: self.should_load_geometry = True self.should_clean_mesh = False self.should_cache = True - self.deflection_tolerance = 0.001 + self.deflection_tolerance = 0.05 # Default is 0.001, but I find this to be more practical self.angular_tolerance = 0.5 self.void_limit = 30 self.style_limit = 300 diff --git a/src/bonsai/bonsai/bim/module/project/prop.py b/src/bonsai/bonsai/bim/module/project/prop.py index 8983c927c9..6894392437 100644 --- a/src/bonsai/bonsai/bim/module/project/prop.py +++ b/src/bonsai/bonsai/bim/module/project/prop.py @@ -319,7 +319,7 @@ class BIMProjectProperties(PropertyGroup): ), default=False, ) - deflection_tolerance: FloatProperty(name="Deflection Tolerance", default=0.001) + deflection_tolerance: FloatProperty(name="Deflection Tolerance", default=0.05) angular_tolerance: FloatProperty(name="Angular Tolerance", default=0.5) void_limit: IntProperty( name="Void Limit", From 5dd771c5e5a2730361a0128bb77a085bf11a7e11 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jan 2026 15:51:39 +1100 Subject: [PATCH 030/171] Fix #7596. Bug where IFC2X3's workspace didn't use IfcDoorStyle and IfcWindowStyle instead --- src/bonsai/bonsai/bim/module/model/data.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/model/data.py b/src/bonsai/bonsai/bim/module/model/data.py index 2c96e42925..649b92b325 100644 --- a/src/bonsai/bonsai/bim/module/model/data.py +++ b/src/bonsai/bonsai/bim/module/model/data.py @@ -52,6 +52,11 @@ class AuthoringData: cls.is_loaded = True cls.props = tool.Model.get_model_props() cls.data["default_container"] = cls.default_container() + if tool.Ifc.get().schema == "IFC2X3": + if ifc_element_type == "IfcDoorType": + ifc_element_type = "IfcDoorStyle" + elif ifc_element_type == "IfcWindowType": + ifc_element_type = "IfcWindowStyle" cls.data["ifc_element_type"] = ifc_element_type cls.data["ifc_classes"] = cls.ifc_classes() cls.data["ifc_class_current"] = cls.ifc_class_current() From ac128e33958cb09335d5aac57873972971c38d54 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jan 2026 15:56:44 +1100 Subject: [PATCH 031/171] Close #7601. Clearer docs that there is a single mesh item. --- .../docs/ifcopenshell-python/geometry_creation.rst | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst index 65c21cafef..817630ad7d 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst @@ -340,8 +340,12 @@ In IFC, meshes may be stored as **Faceted BReps**, **Tessellations**, or # These vertices and faces represent a 2m square 1m high pyramid in SI units. # Note how they are nested lists. Each nested list represents a "mesh". There may be multiple meshes. - vertices = [[(0.,0.,0.), (0.,2.,0.), (2.,2.,0.), (2.,0.,0.), (1.,1.,1.)]] - faces = [[(0,1,2,3), (0,4,1), (1,4,2), (2,4,3), (3,4,0)]] + vertices = [ + [(0.,0.,0.), (0.,2.,0.), (2.,2.,0.), (2.,0.,0.), (1.,1.,1.)] # A single mesh + ] + faces = [ + [(0,1,2,3), (0,4,1), (1,4,2), (2,4,3), (3,4,0)] # A single mesh + ] representation = ifcopenshell.api.geometry.add_mesh_representation(model, context=body, vertices=vertices, faces=faces) .. image:: images/mesh-representation.png From 6b7b834ac08367c8902053eaac86e00341a0d793 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 10:12:33 +0100 Subject: [PATCH 032/171] Don't try and solve 2d bools in cgal-simple #7503 --- src/ifcgeom/kernels/cgal/CgalKernel.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ifcgeom/kernels/cgal/CgalKernel.cpp b/src/ifcgeom/kernels/cgal/CgalKernel.cpp index a2d4d01ebc..1e4a8866b9 100644 --- a/src/ifcgeom/kernels/cgal/CgalKernel.cpp +++ b/src/ifcgeom/kernels/cgal/CgalKernel.cpp @@ -1835,6 +1835,9 @@ bool CgalKernel::convert_impl(const taxonomy::boolean_result::ptr br, Conversion CGAL::Polygon_with_holes_2 pwh(p, ++it, loops.end()); CGAL::Gps_segment_traits_2 traits; if (!CGAL::are_holes_and_boundary_pairwise_disjoint(pwh, traits)) { +#ifdef IFOPSH_SIMPLE_KERNEL + throw std::runtime_error("Holes are not disjoint - use a different geometry kernel"); +#else // this is very slow. // the check is also slow... @@ -1851,6 +1854,7 @@ bool CgalKernel::convert_impl(const taxonomy::boolean_result::ptr br, Conversion result.difference(*it); } result.polygons_with_holes(std::back_inserter(pwhs)); +#endif } else { pwhs.push_back(pwh); } From c739b9338964cec63bc7c6b3c0cabe99444c119e Mon Sep 17 00:00:00 2001 From: Esteban DUGUEPEROUX Date: Thu, 22 Jan 2026 17:27:58 +0100 Subject: [PATCH 033/171] fix: Have kernels targets built as library --- src/ifcgeom/kernels/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ifcgeom/kernels/CMakeLists.txt b/src/ifcgeom/kernels/CMakeLists.txt index c9c8c549cb..5cbbd32c0d 100644 --- a/src/ifcgeom/kernels/CMakeLists.txt +++ b/src/ifcgeom/kernels/CMakeLists.txt @@ -8,7 +8,7 @@ foreach(kernel ${GEOMETRY_KERNELS}) set(KERNEL_TARGET "geometry_kernel_${kernel}") - add_library(${KERNEL_TARGET} OBJECT ${IFCGEOM_FILES}) + add_library(${KERNEL_TARGET} ${IFCGEOM_FILES}) set_target_properties( ${KERNEL_TARGET} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS" PUBLIC_HEADER "${IFCGEOM_H_FILES}" @@ -27,7 +27,7 @@ foreach(kernel ${GEOMETRY_KERNELS}) set_property(TARGET ${KERNEL_TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " -DCGAL_HAS_THREADS") set(KERNEL_TARGET_SIMPLE "${KERNEL_TARGET}_simple") - add_library(${KERNEL_TARGET_SIMPLE} OBJECT ${IFCGEOM_FILES}) + add_library(${KERNEL_TARGET_SIMPLE} ${IFCGEOM_FILES}) set_target_properties( ${KERNEL_TARGET_SIMPLE} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIFOPSH_SIMPLE_KERNEL -DCGAL_HAS_THREADS" From a609bc61b9f297e92e6682c6f77aa1dabde14351 Mon Sep 17 00:00:00 2001 From: Esteban DUGUEPEROUX Date: Thu, 22 Jan 2026 17:48:16 +0100 Subject: [PATCH 034/171] fix: Define OPENCASCADE_LIBRARIES as expected by generic CMakeLists.txt for ifcgeom kernels --- cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 9e88026ac7..0fb45e42eb 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -218,6 +218,7 @@ if(BUILD_IFCGEOM AND WITH_OPENCASCADE) find_package(OpenCASCADE REQUIRED) add_definitions(-DIFOPSH_WITH_OPENCASCADE) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_OPENCASCADE) + # set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES}) list(APPEND GEOMETRY_KERNELS opencascade) endif() From 128fdcb62e2d7b9756516aec4e6f110251234974 Mon Sep 17 00:00:00 2001 From: Esteban DUGUEPEROUX Date: Thu, 22 Jan 2026 18:24:43 +0100 Subject: [PATCH 035/171] fix: Add IfcGeom as a dependency of kernels target instead of the inverse --- cmake/CMakeLists.txt | 1 - src/ifcgeom/CMakeLists.txt | 6 +++++- src/ifcgeom/kernels/CMakeLists.txt | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0fb45e42eb..9e88026ac7 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -218,7 +218,6 @@ if(BUILD_IFCGEOM AND WITH_OPENCASCADE) find_package(OpenCASCADE REQUIRED) add_definitions(-DIFOPSH_WITH_OPENCASCADE) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_OPENCASCADE) - # set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES}) list(APPEND GEOMETRY_KERNELS opencascade) endif() diff --git a/src/ifcgeom/CMakeLists.txt b/src/ifcgeom/CMakeLists.txt index b50dfce590..4bacbf2f72 100644 --- a/src/ifcgeom/CMakeLists.txt +++ b/src/ifcgeom/CMakeLists.txt @@ -31,12 +31,16 @@ find_package(Eigen3 REQUIRED) target_link_libraries( IfcGeom - ${kernel_libraries} ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen" ${CGAL_LIBRARIES} ) + +if(WITH_OPENCASCADE) + target_link_libraries(IfcGeom TKernel) +endif() + if(NOT WASM_BUILD) target_link_libraries(IfcGeom IfcParse) endif() diff --git a/src/ifcgeom/kernels/CMakeLists.txt b/src/ifcgeom/kernels/CMakeLists.txt index 5cbbd32c0d..fa9656b782 100644 --- a/src/ifcgeom/kernels/CMakeLists.txt +++ b/src/ifcgeom/kernels/CMakeLists.txt @@ -14,7 +14,7 @@ foreach(kernel ${GEOMETRY_KERNELS}) PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS" PUBLIC_HEADER "${IFCGEOM_H_FILES}" ) list(APPEND kernel_libraries ${KERNEL_TARGET}) - target_link_libraries(${KERNEL_TARGET} ${${KERNEL_UPPER}_LIBRARIES} Eigen3::Eigen) + target_link_libraries(${KERNEL_TARGET} ${${KERNEL_UPPER}_LIBRARIES} IfcGeom Eigen3::Eigen) install( TARGETS ${KERNEL_TARGET} EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} From ab3108ff59f37674396a4e01349a2c57526d8cfa Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 11:16:06 +0100 Subject: [PATCH 036/171] Set GMP --enable-fat during build #7458 #7556 --- nix/build-all.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/build-all.py b/nix/build-all.py index 448e3655ec..73a92c0b3a 100644 --- a/nix/build-all.py +++ b/nix/build-all.py @@ -1177,6 +1177,8 @@ if "cgal" in targets: # Disable assembly, otherwise `emcc -c conftest.s` will crash due to assembly mismatch. gmp_args.extend(("--disable-assembly", "--enable-cxx")) mpfr_args.extend(("--host", "none")) + else: + gmp_args.append("--enable-fat") # See issues #7458 #7556 OLD_CC = None if MAC_CROSS_COMPILE_INTEL: From a6a9f9d0a769b91d5dd3cef4350aed0b875e7d12 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 11:22:56 +0100 Subject: [PATCH 037/171] Only enable--fat on x86 in build-all.py #7458 #7556 --- nix/build-all.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/build-all.py b/nix/build-all.py index 73a92c0b3a..b60ab1adbd 100644 --- a/nix/build-all.py +++ b/nix/build-all.py @@ -1177,7 +1177,7 @@ if "cgal" in targets: # Disable assembly, otherwise `emcc -c conftest.s` will crash due to assembly mismatch. gmp_args.extend(("--disable-assembly", "--enable-cxx")) mpfr_args.extend(("--host", "none")) - else: + elif "x86" in arch: gmp_args.append("--enable-fat") # See issues #7458 #7556 OLD_CC = None From 9c6a8bdb90087ac281bab652778025380e5b6e1a Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 11:43:08 +0100 Subject: [PATCH 038/171] Clash: Increase robustness of processing triangulated elements - skip empty #7467 --- src/ifcgeom/kernels/opencascade/IfcGeomTree.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h index 997391fcd6..8aed46f5bc 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h +++ b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h @@ -1792,6 +1792,10 @@ namespace IfcGeom { auto& vs = elem->geometry().verts(); auto& fs = elem->geometry().faces(); + if (vs.empty() || fs.empty()) { + return; + } + gp_Trsf tr; tr.SetValues( m(0, 0), m(0, 1), m(0, 2), m(0, 3), From f0308962aaf0006122c9c92d9cb30a5b56c753a6 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 11:43:39 +0100 Subject: [PATCH 039/171] Clash: Increase robustness of processing triangulated elements - fully co-planar element #7467 --- src/ifcgeom/kernels/opencascade/IfcGeomTree.h | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h index 8aed46f5bc..46e0f06731 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h +++ b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h @@ -1863,23 +1863,36 @@ namespace IfcGeom { candidates.push_back({ std::abs(Z.Dot(ref)), ref }); } - if (candidates.empty()) { - { - gp_XYZ ref(0, 0, 1); - candidates.push_back({ std::abs(Z.Dot(ref)), ref }); + gp_Ax3 ax3; + gp_Trsf trsf2; + + for (size_t attempt = 0; attempt < 2; ++attempt) { + + if (candidates.empty() || attempt == 1) { + { + gp_XYZ ref(0, 0, 1); + candidates.push_back({std::abs(Z.Dot(ref)), ref}); + } + { + gp_XYZ ref(1, 0, 0); + candidates.push_back({std::abs(Z.Dot(ref)), ref}); + } } + + auto X = std::min_element(candidates.begin(), candidates.end(), [](auto& p1, auto& p2) { return p1.first < p2.first; })->second; + { - gp_XYZ ref(1, 0, 0); - candidates.push_back({ std::abs(Z.Dot(ref)), ref }); + try { + ax3 = gp_Ax3(gp::Origin(), Z, X); + trsf2.SetTransformation(gp::XOY(), ax3); + } catch (Standard_ConstructionError&) { + // Try again, likely we have all identical normals in candidates so + // we cannot find a suitable candidate and need the two default axes + continue; + } } } - auto X = std::min_element(candidates.begin(), candidates.end(), [](auto& p1, auto& p2) { return p1.first < p2.first; })->second; - - gp_Trsf trsf2; - gp_Ax3 ax3(gp::Origin(), Z, X); - trsf2.SetTransformation(gp::XOY(), ax3); - Bnd_Box tmp; for (auto& p : vs_transformed) { From 3d530b1d39efb3a54e716cde6f700e5dec9c91ee Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 11:43:52 +0100 Subject: [PATCH 040/171] No occt multi-threading since we have our own --- src/ifcgeom/kernels/opencascade/boolean_utils.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ifcgeom/kernels/opencascade/boolean_utils.cpp b/src/ifcgeom/kernels/opencascade/boolean_utils.cpp index 975ee00d0d..d41f1e4adf 100644 --- a/src/ifcgeom/kernels/opencascade/boolean_utils.cpp +++ b/src/ifcgeom/kernels/opencascade/boolean_utils.cpp @@ -1134,6 +1134,8 @@ bool IfcGeom::util::boolean_operation(const boolean_settings& settings, const To #endif builder->SetFuzzyValue(fuzz); builder->SetArguments(s1s); + // We use our own multi-threading in ifcopenshell on a per-product basis + builder->SetRunParallel(false); copy_operand(b, b_tmp); std::swap(b, b_tmp); builder->SetTools(b); From ad0c97a6bb6ac38b4b19677b4d151bc69ff13b65 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 11:44:08 +0100 Subject: [PATCH 041/171] Fix #7561 --- src/ifcgeom/kernels/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ifcgeom/kernels/CMakeLists.txt b/src/ifcgeom/kernels/CMakeLists.txt index fa9656b782..73882d2c71 100644 --- a/src/ifcgeom/kernels/CMakeLists.txt +++ b/src/ifcgeom/kernels/CMakeLists.txt @@ -42,3 +42,8 @@ foreach(kernel ${GEOMETRY_KERNELS}) endforeach() set(kernel_libraries ${kernel_libraries} PARENT_SCOPE) + +install( + FILES ifc_geomlibrary_api.h + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcgeom/kernels/" +) From 92ad7d2ba299d958b070030beca4af3200c991b7 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 11:54:04 +0100 Subject: [PATCH 042/171] Fix #7554 --- src/ifcgeom/IfcGeomRepresentation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeom/IfcGeomRepresentation.cpp b/src/ifcgeom/IfcGeomRepresentation.cpp index 48346b2831..f0c150597e 100644 --- a/src/ifcgeom/IfcGeomRepresentation.cpp +++ b/src/ifcgeom/IfcGeomRepresentation.cpp @@ -91,7 +91,7 @@ bool IfcGeom::Representation::BRep::calculate_volume(double& volume) const { volume = 0.; return false; } - volume = s->area()->to_double(); + volume = s->volume()->to_double(); return true; } From 5c31ae4c371c18525096a1ceda84dc9618c5de39 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jan 2026 22:03:28 +1100 Subject: [PATCH 043/171] Remove preference to mass/time and make it default with simpler code I generally like to minimise knobs and dials, so this is now part of the wizard but now defaults to a "NONE" unit. You also now have the option to choose "NONE" for area / volume units which makes things consistent. Enum names also match the IFC lowercase convention for conversion based units. This also simplifies the core logic and treats all units the same way instead of special cases for each unit type. (length is still special and required in Bonsai as we are inherently graphical) --- src/bonsai/bonsai/bim/module/project/ui.py | 16 +---- src/bonsai/bonsai/bim/prop.py | 27 ++++---- src/bonsai/bonsai/bim/ui.py | 6 -- src/bonsai/bonsai/core/tool.py | 2 +- src/bonsai/bonsai/core/unit.py | 49 +++---------- src/bonsai/bonsai/tool/unit.py | 80 +++++----------------- 6 files changed, 44 insertions(+), 136 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/project/ui.py b/src/bonsai/bonsai/bim/module/project/ui.py index 1a6f727b20..ac70720dbe 100644 --- a/src/bonsai/bonsai/bim/module/project/ui.py +++ b/src/bonsai/bonsai/bim/module/project/ui.py @@ -368,21 +368,11 @@ class BIM_PT_new_project_wizard(Panel): row = self.layout.row() row.prop(props, "volume_unit", text="Volume Unit") row = self.layout.row() + row.prop(props, "mass_unit", text="Mass Unit") + row = self.layout.row() + row.prop(props, "time_unit", text="Time Unit") prop_with_search(self.layout, pprops, "template_file", text="Template") - if tool.Blender.get_addon_preferences().mass_time_units_in_wizard: - header, body = self.layout.panel("Mass and Time Units", default_closed=True) - if header: - header.label(text="Mass and Time Units") - if body: - label = "Add Mass and Time Units" if not props.add_mass_time_units else "Remove Mass and Time Units" - body.prop(props, "add_mass_time_units", toggle=True, text=label) - if props.add_mass_time_units: - row = body.row() - row.prop(props, "mass_unit", text="Mass Unit") - row = body.row() - row.prop(props, "time_unit", text="Time Unit") - self.layout.use_property_split = True row = self.layout.row() row.operator("bim.create_project") diff --git a/src/bonsai/bonsai/bim/prop.py b/src/bonsai/bonsai/bim/prop.py index ec8154b167..2adbfab5d6 100644 --- a/src/bonsai/bonsai/bim/prop.py +++ b/src/bonsai/bonsai/bim/prop.py @@ -589,6 +589,7 @@ class BIMProperties(PropertyGroup): area_unit: EnumProperty( default="SQUARE_METRE", items=[ + ("NONE", "None", ""), ("NANO/SQUARE_METRE", "Square Nanometre", ""), ("MICRO/SQUARE_METRE", "Square Micrometre", ""), ("MILLI/SQUARE_METRE", "Square Millimetre", ""), @@ -606,6 +607,7 @@ class BIMProperties(PropertyGroup): volume_unit: EnumProperty( default="CUBIC_METRE", items=[ + ("NONE", "None", ""), ("NANO/CUBIC_METRE", "Cubic Nanometre", ""), ("MICRO/CUBIC_METRE", "Cubic Micrometre", ""), ("MILLI/CUBIC_METRE", "Cubic Millimetre", ""), @@ -619,31 +621,28 @@ class BIMProperties(PropertyGroup): ], name="IFC Volume Unit", ) - add_mass_time_units: bpy.props.BoolProperty( - name="Add Mass and Time Units", - description="Enable to define mass and time units for the project", - default=False, - ) mass_unit: EnumProperty( items=[ - ("KILOGRAM", "Kilogram", "Kilograms"), + ("NONE", "None", ""), ("GRAM", "Gram", "Grams"), - ("POUND", "Pound", "Pounds"), - ("OUNCE", "Ounce", "Ounces"), - ("TONNE", "Tonne", "Metric Tons"), + ("KILO/KILOGRAM", "Kilogram", "Kilograms"), + ("MEGA/TONNE", "Tonne", "Metric Tons"), + ("pound", "Pound", "Pounds"), + ("ounce", "Ounce", "Ounces"), ], name="Mass Unit", - default="KILOGRAM", + default="NONE", ) time_unit: EnumProperty( items=[ + ("NONE", "None", ""), ("SECOND", "Second", "Seconds"), - ("MINUTE", "Minute", "Minutes"), - ("HOUR", "Hour", "Hours"), - ("DAY", "Day", "Days"), + ("minute", "Minute", "Minutes"), + ("hour", "Hour", "Hours"), + ("day", "Day", "Days"), ], name="Time Unit", - default="HOUR", + default="NONE", ) tab_visibilities: CollectionProperty(type=BIMTabVisibility, name="Tab Visibilities") active_tab_visibility_index: IntProperty(name="Active Tab Visibility Index") diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index 49c2cf51b6..81eb4c45d0 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -717,12 +717,6 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): default=False, ) - mass_time_units_in_wizard: BoolProperty( - name="Mass and time units in project wizard", - description="Show mass and time units section in the new project wizard panel", - default=False, - ) - chain_filter_with_set_operations: BoolProperty( name="NEW Filter mode: Enable chained filters with set operations", description="Enable chaining search filters with set operations: ADD (union: combine sets), SUBTRACT (difference: remove from set), FILTER (intersection: only elements in both sets), with autocomplete suggestions for filter values", diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index e231571834..c07ac9f483 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -1124,7 +1124,7 @@ class Unit: def enable_editing_units(cls): pass def export_unit_attributes(cls): pass def get_scene_unit_name(cls, unit_type): pass - def get_scene_unit_si_prefix(cls, unit_type): pass + def get_scene_unit_si_prefix(cls, name): pass def import_unit_attributes(cls, unit): pass def import_units(cls): pass def is_scene_unit_metric(cls): pass diff --git a/src/bonsai/bonsai/core/unit.py b/src/bonsai/bonsai/core/unit.py index fde75297b1..a8325f9d89 100644 --- a/src/bonsai/bonsai/core/unit.py +++ b/src/bonsai/bonsai/core/unit.py @@ -27,46 +27,17 @@ if TYPE_CHECKING: def assign_scene_units(ifc: type[tool.Ifc], unit: type[tool.Unit]) -> None: - if unit.is_scene_unit_metric(): - lengthunit = ifc.run( - "unit.add_si_unit", unit_type="LENGTHUNIT", prefix=unit.get_scene_unit_si_prefix("LENGTHUNIT") - ) - areaunit = ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix=unit.get_scene_unit_si_prefix("AREAUNIT")) - volumeunit = ifc.run( - "unit.add_si_unit", unit_type="VOLUMEUNIT", prefix=unit.get_scene_unit_si_prefix("VOLUMEUNIT") - ) - planeangleunit = ifc.run("unit.add_conversion_based_unit", name="degree") - units = [lengthunit, areaunit, volumeunit, planeangleunit] - - if unit.add_mass_and_time_units(): - prefix = unit.get_scene_unit_si_prefix("MASSUNIT") - if prefix == "CONVERSION": - massunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("MASSUNIT").lower()) + units = [] + for unit_type in ["LENGTHUNIT", "AREAUNIT", "VOLUMEUNIT", "MASSUNIT", "TIMEUNIT"]: + if name := unit.get_scene_unit_name(unit_type): + if unit.is_si_unit(name): + units.append( + ifc.run("unit.add_si_unit", unit_type=unit_type, prefix=unit.get_scene_unit_si_prefix(name)) + ) else: - massunit = ifc.run("unit.add_si_unit", unit_type="MASSUNIT", prefix=prefix) - prefix = unit.get_scene_unit_si_prefix("TIMEUNIT") - if prefix == "CONVERSION": - timeunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("TIMEUNIT").lower()) - else: - timeunit = ifc.run("unit.add_si_unit", unit_type="TIMEUNIT", prefix=prefix) - units += [massunit, timeunit] - - else: - lengthunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("LENGTHUNIT")) - areaunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("AREAUNIT")) - volumeunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("VOLUMEUNIT")) - planeangleunit = ifc.run("unit.add_conversion_based_unit", name="degree") - units = [lengthunit, areaunit, volumeunit, planeangleunit] - - if unit.add_mass_and_time_units(): - massunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("MASSUNIT").lower()) - time_unit_name = unit.get_scene_unit_name("TIMEUNIT") - if time_unit_name == "SECOND": - timeunit = ifc.run("unit.add_si_unit", unit_type="TIMEUNIT", prefix=None) - else: - timeunit = ifc.run("unit.add_conversion_based_unit", name=time_unit_name.lower()) - units += [massunit, timeunit] - ifc.run("unit.assign_unit", units=units) + units.append(ifc.run("unit.add_conversion_based_unit", name=name)) + if units: + ifc.run("unit.assign_unit", units=units) def assign_unit(ifc: type[tool.Ifc], unit_tool: type[tool.Unit], unit: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/tool/unit.py b/src/bonsai/bonsai/tool/unit.py index f7c9ce300b..b98e4fc272 100644 --- a/src/bonsai/bonsai/tool/unit.py +++ b/src/bonsai/bonsai/tool/unit.py @@ -330,66 +330,26 @@ class Unit(bonsai.core.tool.Unit): return bonsai.bim.helper.export_attributes(props.unit_attributes, callback=callback) @classmethod - def get_scene_unit_name(cls, unit_type: UNIT_TYPE) -> str: - bim_props = tool.Blender.get_bim_props() + def get_scene_unit_name(cls, unit_type: UNIT_TYPE) -> str | None: if unit_type == "LENGTHUNIT": - assert bpy.context.scene - props = bpy.context.scene.unit_settings - if props.length_unit == "MILES": - return "mile" - elif props.length_unit == "FEET" or props.length_unit == "ADAPTIVE": - return "foot" - elif props.length_unit == "INCHES": - return "inch" - elif props.length_unit == "THOU": - return "thou" - return "foot" - elif unit_type == "AREAUNIT": - return bim_props.area_unit - elif unit_type == "VOLUMEUNIT": - return bim_props.volume_unit - elif unit_type == "MASSUNIT": - return bim_props.mass_unit.lower() - elif unit_type == "TIMEUNIT": - return bim_props.time_unit.lower() - else: - assert_never(unit_type) + name = bpy.context.scene.unit_settings.length_unit + name = {"MILES": "mile", "FEET": "foot", "INCHES": "inch", "THOU": "thou", "ADAPTIVE": "METERS"}.get( + name, name + ) + if len(name) > len("METERS") and name.endswith("METERS"): + return f"{name[:-6]}/METRE" + return name + bim_props = tool.Blender.get_bim_props() + if (name := getattr(bim_props, f"{unit_type[:-4].lower()}_unit")) != "NONE": + return name @classmethod - def get_scene_unit_si_prefix(cls, unit_type: UNIT_TYPE) -> Union[str, None]: - bim_props = tool.Blender.get_bim_props() - if unit_type == "LENGTHUNIT": - assert bpy.context.scene - props = bpy.context.scene.unit_settings - if props.length_unit == "ADAPTIVE" or props.length_unit == "METERS": - return - return props.length_unit.replace("METERS", "") - elif unit_type == "AREAUNIT": - unit = bim_props.area_unit - elif unit_type == "VOLUMEUNIT": - unit = bim_props.volume_unit - elif unit_type == "MASSUNIT": - unit = bim_props.mass_unit - if unit == "GRAM": - return None - elif unit == "KILOGRAM": - return "KILO" - elif unit == "TONNE": - return "MEGA" - elif unit in ["POUND", "OUNCE"]: - return "CONVERSION" - else: - return None - elif unit_type == "TIMEUNIT": - unit = bim_props.time_unit - if unit == "SECOND": - return None - else: - return "CONVERSION" - else: - assert_never(unit_type) - if "/" in unit: - return unit.split("/")[0] + def is_si_unit(cls, name: str) -> bool: + return name[0].isupper() + + @classmethod + def get_scene_unit_si_prefix(cls, name: str) -> str | None: + return name.split("/")[0] if "/" in name else None @classmethod def import_unit_attributes(cls, unit: ifcopenshell.entity_instance) -> None: @@ -504,9 +464,3 @@ class Unit(bonsai.core.tool.Unit): elif ifc_class == "IfcMonetaryUnit": return "COPY_ID" return "MOD_MESHDEFORM" - - @classmethod - def add_mass_and_time_units(cls) -> bool: - """Return True if the user wants to add mass and time units, False otherwise.""" - bim_props = tool.Blender.get_bim_props() - return getattr(bim_props, "add_mass_time_units", False) From b41d3ae2b743bcb7357b64c486b75d03432902b4 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jan 2026 22:32:48 +1100 Subject: [PATCH 044/171] Bump IfcConvert documentation including .json and .rdb support --- src/ifcopenshell-python/docs/ifcconvert.rst | 3 +- .../docs/ifcconvert/usage.rst | 62 ++++++++++++++----- 2 files changed, 50 insertions(+), 15 deletions(-) diff --git a/src/ifcopenshell-python/docs/ifcconvert.rst b/src/ifcopenshell-python/docs/ifcconvert.rst index bbdbe0c14c..beef450578 100644 --- a/src/ifcopenshell-python/docs/ifcconvert.rst +++ b/src/ifcopenshell-python/docs/ifcconvert.rst @@ -12,7 +12,8 @@ table below. +=========================+=========================+======================+ | .ifc | .obj, .dae, .glb, .stp, | IfcConvert | | | .igs, .xml, .svg, .h5, | | -| | .ttl, .ifc | | +| | .ttl, .ifc, .rdb, | | +| | .json (xeokit) | | +-------------------------+-------------------------+----------------------+ | .ifc | .dae, .abc, .usd, .obj, | Bonsai_ | | | .ply, .stl, .fbx, .glb, | | diff --git a/src/ifcopenshell-python/docs/ifcconvert/usage.rst b/src/ifcopenshell-python/docs/ifcconvert/usage.rst index 2c8ffeee5c..3c6846d25b 100644 --- a/src/ifcopenshell-python/docs/ifcconvert/usage.rst +++ b/src/ifcopenshell-python/docs/ifcconvert/usage.rst @@ -70,7 +70,7 @@ CLI Manual $ IfcConvert -h - IfcOpenShell IfcConvert 0.8.1-c49ca69 (OCC 7.8.1) + IfcOpenShell IfcConvert 0.8.4-158fe92 (OCC 7.8.1) Usage: IfcConvert [options] [] Converts (the geometry in) an IFC file into one of the following formats: @@ -80,6 +80,8 @@ CLI Manual .stp STEP Standard for the Exchange of Product Data .igs IGES Initial Graphics Exchange Specification .xml XML Property definitions and decomposition tree + .json JSON Property definitions and decomposition tree in xeokit json format + .rdb RocksDB RocksDB Key-Value store serialization of IFC data .svg SVG Scalable Vector Graphics (2D floor plan) .h5 HDF Hierarchical Data Format storing positions, normals and indices .ttl TTL/WKT RDF Turtle with Well-Known-Text geometry @@ -108,7 +110,8 @@ CLI Manual Geometry options: --kernel arg (=opencascade) Geometry kernel to use (opencascade, - cgal, cgal-simple). + cgal, cgal-simple, hybrid-cgal-simple-o + pencascade). -j [ --threads ] arg (=1) Number of parallel processing threads for geometry interpretation. --center-model Centers the elements by applying the @@ -118,6 +121,11 @@ CLI Manual --center-model-geometry Centers the elements by applying the center point of all mesh vertices as an offset. + --model-offset arg Applies an arbitrary offset of form + 'x;y;z' to all placements. + --model-rotation arg Applies an arbitrary quaternion + rotation of form 'x;y;z;w' to all + placements. --include arg Specifies that the instances that match a specific filtering criteria are to be included in the geometrical output: @@ -207,13 +215,12 @@ CLI Manual of surface normals, even if the faces are not properly oriented in the IFC file. - --length-unit arg (= 1) - --angle-unit arg (= 1) - --precision arg (= 1e-05) --dimensionality arg (= 1) Specifies whether to include curves and/or surfaces and solids in the output result. Defaults to only - surfaces and solids. + surfaces and solids (SURFACES_AND_SOLID + S). Other possible values are CURVES, + CURVES_SURFACES_AND_SOLIDS. --layerset-first Assigns the first layer material of the layerset to the complete product. --disable-boolean-result Specifies whether to disable the @@ -262,9 +269,11 @@ CLI Manual geometrical output back to the unit of measure in which it is defined in the IFC file. Default is to use meters. - --context-ids arg - --context-ids arg - --context-ids arg + --context-ids arg List of comma separated context ids to + process - e.g. '15,29' (no quotes + needed). + --context-types arg Currently option has no effect. + --context-identifiers arg Currently option has no effect. --iterator-output arg (= 0) --disable-opening-subtractions Specifies whether to disable the boolean subtraction of @@ -304,10 +313,18 @@ CLI Manual geometry output. --circle-segments arg (= 16) Number of segments to approximate full circles in CGAL kernel. + --cgal-smooth-angle-degrees arg (= -1) + Angle in degrees under which adjacent + facets will have averaged vertex + normals in CGAL output. NB irrespective + of original IFC geometry types. + Defaults to -1 to disable smoothing. --keep-bounding-boxes Default is to removes IfcBoundingBox from model prior to converting geometry.Setting this option disables that behaviour + --compute-curvature Specifies whether function_item_evaluat + or.evaluate() computes curvature. --function-step-type arg (= 0) Indicates the method used for defining step size when evaluating function-based curves. Provides @@ -320,12 +337,24 @@ CLI Manual parallel. May decrease performance, but also decrease output size (in the future) - --model-offset arg Applies an arbitrary offset of form - 'x,y,z' to all placements. - --model-rotation arg Applies an arbitrary quaternion - rotation of form 'x,y,z,w' to all - placements. + --permissive-shape-reuse Traverse geometry-level transformations + and apply to product-level placement in + order to increase reuse of geometries --triangulation-type arg (= 0) Type of planar facet to be emitted + --cgal-original-edges Try to emit original edge face boundary + edges instead of recomputed ones based + on face normal. Falls back to + triangulated data in case of boolean + operands and faces with holes. + --cache-shapes Experimental as not all topology hash + functions fully implemented + --max-offset arg Maximum translation offset to be + observed after which median offset in + model gets removed and logged. Requires + --no-parallel-mapping. + --max-offset-deviation arg To retain field of view, completely + remove elements outside of the median + offset. Requires --no-parallel-mapping. Serialization options: --bounds arg Specifies the bounding rectangle, for @@ -421,3 +450,8 @@ CLI Manual --wkt-use-section Use a geometrical section rather than full polyhedral output and footprint in TTL WKT + --separate-z-up-node Introduce a separate Z-Up node into the + GlTF hierarchy instead of multiplying + the transform into the root node + matrices + From cc542ad07439c39b9a851e6cd6bf339e310cb70e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jan 2026 22:33:20 +1100 Subject: [PATCH 045/171] See #7503. Add docs about geometry_library --- .../geometry_processing.rst | 14 +++++++--- .../docs/ifcopenshell/geometry_settings.rst | 26 +++++++++++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst index 0c4753807a..6058781de4 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst @@ -19,7 +19,6 @@ edges, and faces, or alternatively an OpenCASCADE BRep. applications. See the `Geometry iterator`_ section below after reading this to see how to process geometry with multiple threads. - Here is a simple example of processing a single wall into a list of vertices and faces. In this example, a ``shape`` variable is returned, which holds geometry related information in ``shape.geometry``: @@ -33,8 +32,12 @@ related information in ``shape.geometry``: ifc_file = ifcopenshell.open('model.ifc') element = ifc_file.by_type('IfcWall')[0] + # Create a shape using a hybrid of the cgal-simple geometry kernel and opencascade as a fallback + # Choosing a geometry kernel has a big impact on speed and capability. + # It is recommended to use the "hybrid-cgal-simple-opencascade" kernel. settings = ifcopenshell.geom.settings() - shape = ifcopenshell.geom.create_shape(settings, element) + shape = ifcopenshell.geom.create_shape( + settings, element, geometry_library="hybrid-cgal-simple-opencascade") # The GUID of the element we processed print(shape.guid) @@ -224,7 +227,8 @@ Here is a simple example in Python: ifc_file = ifcopenshell.open('model.ifc') settings = ifcopenshell.geom.settings() - iterator = ifcopenshell.geom.iterator(settings, ifc_file, multiprocessing.cpu_count()) + iterator = ifcopenshell.geom.iterator( + settings, ifc_file, multiprocessing.cpu_count(), geometry_library="hybrid-cgal-simple-opencascade") if iterator.initialize(): while True: shape = iterator.get() @@ -252,7 +256,9 @@ only process wall elements. .. code-block:: python walls = ifc.by_type('IfcWall') - iterator = ifcopenshell.geom.iterator(settings, ifc, multiprocessing.cpu_count(), include=walls) + iterator = ifcopenshell.geom.iterator( + settings, ifc, multiprocessing.cpu_count(), + include=walls, geometry_library="hybrid-cgal-simple-opencascade") .. note:: diff --git a/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst b/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst index a41489a4dd..f73c7edc28 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst @@ -111,6 +111,32 @@ In Python, this is set when the iterator is constructed: import multiprocessing iterator = ifcopenshell.geom.iterator(settings, ifc_file, num_threads=multiprocessing.cpu_count()) +geometry_library +^^^^^^^^^^^^^^^^ + ++--------+-------------------+-------------+ +| Type | IfcConvert Option | Default | ++========+===================+=============+ +| STRING | ``--kernel`` | opencascade | ++--------+-------------------+-------------+ + +IfcOpenShell supports multiple geometry kernels to process geometry. Choosing the geometry kernel has trade-offs on geometric support, speed, and maturity. It is possible and recommended to chose a hybrid geometry kernel by providing the name ``hybrid-kernelX-kernelY``, where ``kernelX`` is the name of the first kernel to try, and ``kernelY`` is the name of the fallback kernel, for example ``hybrid-cgal-simple-opencascade``. + +.. csv-table:: + :header: "Comparison", "cgal-simple", "cgal", "opencascade" + + "Speed", "Very fast", "Fast", "Slow" + "Curves in extrusion footprints", "Only circle and ellipse arcs are converted to polylines", "Only circle and ellipse arcs are converted to polylines", "Full support including beziers and nurbs" + "Advanced (curved) breps", "No", "No", "Full support" + "Boolean operations", "No", "Full support", "Full support" + "Boolean operations with tolerance / fuzziness handling", "No", "Only manifold inputs", "Full support, including non-manifold inputs" + "Sweeps along alignment curves", "Partial", "Partial", "Full support" + +.. code-block:: python + + iterator = ifcopenshell.geom.iterator(settings, ifc_file, geometry_library="hybrid-cgal-simple-opencascade") + ifcopenshell.geom.create_shape(settings, element, geometry_library="opencascade") + Iterator settings ----------------- From 1137e7b77b9e2cdfcc6dade7c3a4d99efbdcab2a Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 14:35:23 +0100 Subject: [PATCH 046/171] Fix rule compilation regarding indeterminate #7529 --- .../ifcopenshell/express/rule_compiler.py | 19 +- .../ifcopenshell/express/rules/IFC2X3.py | 2631 +++++----- .../ifcopenshell/express/rules/IFC4.py | 3275 ++++++------- .../ifcopenshell/express/rules/IFC4X1.py | 3301 ++++++------- .../ifcopenshell/express/rules/IFC4X2.py | 3499 ++++++------- .../ifcopenshell/express/rules/IFC4X3.py | 4351 +++++++++-------- .../ifcopenshell/express/rules/IFC4X3_ADD1.py | 4237 ++++++++-------- .../ifcopenshell/express/rules/IFC4X3_ADD2.py | 4245 ++++++++-------- .../ifcopenshell/express/rules/IFC4X3_RC1.py | 4191 ++++++++-------- .../ifcopenshell/express/rules/IFC4X3_RC2.py | 4231 ++++++++-------- .../ifcopenshell/express/rules/IFC4X3_RC3.py | 4255 ++++++++-------- .../ifcopenshell/express/rules/IFC4X3_RC4.py | 4293 ++++++++-------- .../ifcopenshell/express/rules/IFC4X3_TC1.py | 4237 ++++++++-------- 13 files changed, 23406 insertions(+), 23359 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py b/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py index 545d68c50a..41fc6764c1 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py @@ -750,6 +750,14 @@ class AttributeGetattrTransformer(ast.NodeTransformer): if node.attr == "create_entity": return node + if node.attr.startswith("__"): + return node + + # Don't rewrite at module scope (top-level, no indent) + enclosing_stmt = next((p for p in parents if isinstance(p, ast.stmt)), None) + if enclosing_stmt is not None and isinstance(getattr(enclosing_stmt, "parent", None), ast.Module): + return node + new_value = self.visit(node.value) # Replace the Attribute node with a call to the built-in `getattr` function @@ -842,18 +850,21 @@ if __name__ == "__main__": print( """ +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: return v() is not None except IndexError as e: return False - else: return v is not None + else: return not is_indeterminate(v) """, "\n", file=output, sep="\n", ) print( - "def nvl(v, default): return v if v is not None else default", + "def nvl(v, default): return v if not is_indeterminate(v) else default", "\n", file=output, sep="\n", @@ -871,14 +882,14 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and not is_entity(v): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py index e5ddfdad00..33f8b79c6f 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,1479 +152,1479 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAheadOrBehind = enum_namespace() -ahead = express_getattr(IfcAheadOrBehind, 'AHEAD', INDETERMINATE) -behind = express_getattr(IfcAheadOrBehind, 'BEHIND', INDETERMINATE) +ahead = IfcAheadOrBehind.AHEAD +behind = IfcAheadOrBehind.BEHIND IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -eyeball = express_getattr(IfcAirTerminalTypeEnum, 'EYEBALL', INDETERMINATE) -iris = express_getattr(IfcAirTerminalTypeEnum, 'IRIS', INDETERMINATE) -lineargrille = express_getattr(IfcAirTerminalTypeEnum, 'LINEARGRILLE', INDETERMINATE) -lineardiffuser = express_getattr(IfcAirTerminalTypeEnum, 'LINEARDIFFUSER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +grille = IfcAirTerminalTypeEnum.GRILLE +register = IfcAirTerminalTypeEnum.REGISTER +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +eyeball = IfcAirTerminalTypeEnum.EYEBALL +iris = IfcAirTerminalTypeEnum.IRIS +lineargrille = IfcAirTerminalTypeEnum.LINEARGRILLE +lineardiffuser = IfcAirTerminalTypeEnum.LINEARDIFFUSER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBuildingElementProxyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modifiedadded = express_getattr(IfcChangeActionEnum, 'MODIFIEDADDED', INDETERMINATE) -modifieddeleted = express_getattr(IfcChangeActionEnum, 'MODIFIEDDELETED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modifiedadded = IfcChangeActionEnum.MODIFIEDADDED +modifieddeleted = IfcChangeActionEnum.MODIFIEDDELETED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -proportionalintegral = express_getattr(IfcControllerTypeEnum, 'PROPORTIONALINTEGRAL', INDETERMINATE) -proportionalintegralderivative = express_getattr(IfcControllerTypeEnum, 'PROPORTIONALINTEGRALDERIVATIVE', INDETERMINATE) -timedtwoposition = express_getattr(IfcControllerTypeEnum, 'TIMEDTWOPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +proportional = IfcControllerTypeEnum.PROPORTIONAL +proportionalintegral = IfcControllerTypeEnum.PROPORTIONALINTEGRAL +proportionalintegralderivative = IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE +timedtwoposition = IfcControllerTypeEnum.TIMEDTWOPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCurrencyEnum = enum_namespace() -aed = express_getattr(IfcCurrencyEnum, 'AED', INDETERMINATE) -aes = express_getattr(IfcCurrencyEnum, 'AES', INDETERMINATE) -ats = express_getattr(IfcCurrencyEnum, 'ATS', INDETERMINATE) -aud = express_getattr(IfcCurrencyEnum, 'AUD', INDETERMINATE) -bbd = express_getattr(IfcCurrencyEnum, 'BBD', INDETERMINATE) -beg = express_getattr(IfcCurrencyEnum, 'BEG', INDETERMINATE) -bgl = express_getattr(IfcCurrencyEnum, 'BGL', INDETERMINATE) -bhd = express_getattr(IfcCurrencyEnum, 'BHD', INDETERMINATE) -bmd = express_getattr(IfcCurrencyEnum, 'BMD', INDETERMINATE) -bnd = express_getattr(IfcCurrencyEnum, 'BND', INDETERMINATE) -brl = express_getattr(IfcCurrencyEnum, 'BRL', INDETERMINATE) -bsd = express_getattr(IfcCurrencyEnum, 'BSD', INDETERMINATE) -bwp = express_getattr(IfcCurrencyEnum, 'BWP', INDETERMINATE) -bzd = express_getattr(IfcCurrencyEnum, 'BZD', INDETERMINATE) -cad = express_getattr(IfcCurrencyEnum, 'CAD', INDETERMINATE) -cbd = express_getattr(IfcCurrencyEnum, 'CBD', INDETERMINATE) -chf = express_getattr(IfcCurrencyEnum, 'CHF', INDETERMINATE) -clp = express_getattr(IfcCurrencyEnum, 'CLP', INDETERMINATE) -cny = express_getattr(IfcCurrencyEnum, 'CNY', INDETERMINATE) -cys = express_getattr(IfcCurrencyEnum, 'CYS', INDETERMINATE) -czk = express_getattr(IfcCurrencyEnum, 'CZK', INDETERMINATE) -ddp = express_getattr(IfcCurrencyEnum, 'DDP', INDETERMINATE) -dem = express_getattr(IfcCurrencyEnum, 'DEM', INDETERMINATE) -dkk = express_getattr(IfcCurrencyEnum, 'DKK', INDETERMINATE) -egl = express_getattr(IfcCurrencyEnum, 'EGL', INDETERMINATE) -est = express_getattr(IfcCurrencyEnum, 'EST', INDETERMINATE) -eur = express_getattr(IfcCurrencyEnum, 'EUR', INDETERMINATE) -fak = express_getattr(IfcCurrencyEnum, 'FAK', INDETERMINATE) -fim = express_getattr(IfcCurrencyEnum, 'FIM', INDETERMINATE) -fjd = express_getattr(IfcCurrencyEnum, 'FJD', INDETERMINATE) -fkp = express_getattr(IfcCurrencyEnum, 'FKP', INDETERMINATE) -frf = express_getattr(IfcCurrencyEnum, 'FRF', INDETERMINATE) -gbp = express_getattr(IfcCurrencyEnum, 'GBP', INDETERMINATE) -gip = express_getattr(IfcCurrencyEnum, 'GIP', INDETERMINATE) -gmd = express_getattr(IfcCurrencyEnum, 'GMD', INDETERMINATE) -grx = express_getattr(IfcCurrencyEnum, 'GRX', INDETERMINATE) -hkd = express_getattr(IfcCurrencyEnum, 'HKD', INDETERMINATE) -huf = express_getattr(IfcCurrencyEnum, 'HUF', INDETERMINATE) -ick = express_getattr(IfcCurrencyEnum, 'ICK', INDETERMINATE) -idr = express_getattr(IfcCurrencyEnum, 'IDR', INDETERMINATE) -ils = express_getattr(IfcCurrencyEnum, 'ILS', INDETERMINATE) -inr = express_getattr(IfcCurrencyEnum, 'INR', INDETERMINATE) -irp = express_getattr(IfcCurrencyEnum, 'IRP', INDETERMINATE) -itl = express_getattr(IfcCurrencyEnum, 'ITL', INDETERMINATE) -jmd = express_getattr(IfcCurrencyEnum, 'JMD', INDETERMINATE) -jod = express_getattr(IfcCurrencyEnum, 'JOD', INDETERMINATE) -jpy = express_getattr(IfcCurrencyEnum, 'JPY', INDETERMINATE) -kes = express_getattr(IfcCurrencyEnum, 'KES', INDETERMINATE) -krw = express_getattr(IfcCurrencyEnum, 'KRW', INDETERMINATE) -kwd = express_getattr(IfcCurrencyEnum, 'KWD', INDETERMINATE) -kyd = express_getattr(IfcCurrencyEnum, 'KYD', INDETERMINATE) -lkr = express_getattr(IfcCurrencyEnum, 'LKR', INDETERMINATE) -luf = express_getattr(IfcCurrencyEnum, 'LUF', INDETERMINATE) -mtl = express_getattr(IfcCurrencyEnum, 'MTL', INDETERMINATE) -mur = express_getattr(IfcCurrencyEnum, 'MUR', INDETERMINATE) -mxn = express_getattr(IfcCurrencyEnum, 'MXN', INDETERMINATE) -myr = express_getattr(IfcCurrencyEnum, 'MYR', INDETERMINATE) -nlg = express_getattr(IfcCurrencyEnum, 'NLG', INDETERMINATE) -nzd = express_getattr(IfcCurrencyEnum, 'NZD', INDETERMINATE) -omr = express_getattr(IfcCurrencyEnum, 'OMR', INDETERMINATE) -pgk = express_getattr(IfcCurrencyEnum, 'PGK', INDETERMINATE) -php = express_getattr(IfcCurrencyEnum, 'PHP', INDETERMINATE) -pkr = express_getattr(IfcCurrencyEnum, 'PKR', INDETERMINATE) -pln = express_getattr(IfcCurrencyEnum, 'PLN', INDETERMINATE) -ptn = express_getattr(IfcCurrencyEnum, 'PTN', INDETERMINATE) -qar = express_getattr(IfcCurrencyEnum, 'QAR', INDETERMINATE) -rur = express_getattr(IfcCurrencyEnum, 'RUR', INDETERMINATE) -sar = express_getattr(IfcCurrencyEnum, 'SAR', INDETERMINATE) -scr = express_getattr(IfcCurrencyEnum, 'SCR', INDETERMINATE) -sek = express_getattr(IfcCurrencyEnum, 'SEK', INDETERMINATE) -sgd = express_getattr(IfcCurrencyEnum, 'SGD', INDETERMINATE) -skp = express_getattr(IfcCurrencyEnum, 'SKP', INDETERMINATE) -thb = express_getattr(IfcCurrencyEnum, 'THB', INDETERMINATE) -trl = express_getattr(IfcCurrencyEnum, 'TRL', INDETERMINATE) -ttd = express_getattr(IfcCurrencyEnum, 'TTD', INDETERMINATE) -twd = express_getattr(IfcCurrencyEnum, 'TWD', INDETERMINATE) -usd = express_getattr(IfcCurrencyEnum, 'USD', INDETERMINATE) -veb = express_getattr(IfcCurrencyEnum, 'VEB', INDETERMINATE) -vnd = express_getattr(IfcCurrencyEnum, 'VND', INDETERMINATE) -xeu = express_getattr(IfcCurrencyEnum, 'XEU', INDETERMINATE) -zar = express_getattr(IfcCurrencyEnum, 'ZAR', INDETERMINATE) -zwd = express_getattr(IfcCurrencyEnum, 'ZWD', INDETERMINATE) -nok = express_getattr(IfcCurrencyEnum, 'NOK', INDETERMINATE) +aed = IfcCurrencyEnum.AED +aes = IfcCurrencyEnum.AES +ats = IfcCurrencyEnum.ATS +aud = IfcCurrencyEnum.AUD +bbd = IfcCurrencyEnum.BBD +beg = IfcCurrencyEnum.BEG +bgl = IfcCurrencyEnum.BGL +bhd = IfcCurrencyEnum.BHD +bmd = IfcCurrencyEnum.BMD +bnd = IfcCurrencyEnum.BND +brl = IfcCurrencyEnum.BRL +bsd = IfcCurrencyEnum.BSD +bwp = IfcCurrencyEnum.BWP +bzd = IfcCurrencyEnum.BZD +cad = IfcCurrencyEnum.CAD +cbd = IfcCurrencyEnum.CBD +chf = IfcCurrencyEnum.CHF +clp = IfcCurrencyEnum.CLP +cny = IfcCurrencyEnum.CNY +cys = IfcCurrencyEnum.CYS +czk = IfcCurrencyEnum.CZK +ddp = IfcCurrencyEnum.DDP +dem = IfcCurrencyEnum.DEM +dkk = IfcCurrencyEnum.DKK +egl = IfcCurrencyEnum.EGL +est = IfcCurrencyEnum.EST +eur = IfcCurrencyEnum.EUR +fak = IfcCurrencyEnum.FAK +fim = IfcCurrencyEnum.FIM +fjd = IfcCurrencyEnum.FJD +fkp = IfcCurrencyEnum.FKP +frf = IfcCurrencyEnum.FRF +gbp = IfcCurrencyEnum.GBP +gip = IfcCurrencyEnum.GIP +gmd = IfcCurrencyEnum.GMD +grx = IfcCurrencyEnum.GRX +hkd = IfcCurrencyEnum.HKD +huf = IfcCurrencyEnum.HUF +ick = IfcCurrencyEnum.ICK +idr = IfcCurrencyEnum.IDR +ils = IfcCurrencyEnum.ILS +inr = IfcCurrencyEnum.INR +irp = IfcCurrencyEnum.IRP +itl = IfcCurrencyEnum.ITL +jmd = IfcCurrencyEnum.JMD +jod = IfcCurrencyEnum.JOD +jpy = IfcCurrencyEnum.JPY +kes = IfcCurrencyEnum.KES +krw = IfcCurrencyEnum.KRW +kwd = IfcCurrencyEnum.KWD +kyd = IfcCurrencyEnum.KYD +lkr = IfcCurrencyEnum.LKR +luf = IfcCurrencyEnum.LUF +mtl = IfcCurrencyEnum.MTL +mur = IfcCurrencyEnum.MUR +mxn = IfcCurrencyEnum.MXN +myr = IfcCurrencyEnum.MYR +nlg = IfcCurrencyEnum.NLG +nzd = IfcCurrencyEnum.NZD +omr = IfcCurrencyEnum.OMR +pgk = IfcCurrencyEnum.PGK +php = IfcCurrencyEnum.PHP +pkr = IfcCurrencyEnum.PKR +pln = IfcCurrencyEnum.PLN +ptn = IfcCurrencyEnum.PTN +qar = IfcCurrencyEnum.QAR +rur = IfcCurrencyEnum.RUR +sar = IfcCurrencyEnum.SAR +scr = IfcCurrencyEnum.SCR +sek = IfcCurrencyEnum.SEK +sgd = IfcCurrencyEnum.SGD +skp = IfcCurrencyEnum.SKP +thb = IfcCurrencyEnum.THB +trl = IfcCurrencyEnum.TRL +ttd = IfcCurrencyEnum.TTD +twd = IfcCurrencyEnum.TWD +usd = IfcCurrencyEnum.USD +veb = IfcCurrencyEnum.VEB +vnd = IfcCurrencyEnum.VND +xeu = IfcCurrencyEnum.XEU +zar = IfcCurrencyEnum.ZAR +zwd = IfcCurrencyEnum.ZWD +nok = IfcCurrencyEnum.NOK IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDimensionExtentUsage = enum_namespace() -origin = express_getattr(IfcDimensionExtentUsage, 'ORIGIN', INDETERMINATE) -target = express_getattr(IfcDimensionExtentUsage, 'TARGET', INDETERMINATE) +origin = IfcDimensionExtentUsage.ORIGIN +target = IfcDimensionExtentUsage.TARGET IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -computer = express_getattr(IfcElectricApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -directwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'DIRECTWATERHEATER', INDETERMINATE) -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -electricheater = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICHEATER', INDETERMINATE) -facsimile = express_getattr(IfcElectricApplianceTypeEnum, 'FACSIMILE', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -indirectwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'INDIRECTWATERHEATER', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -printer = express_getattr(IfcElectricApplianceTypeEnum, 'PRINTER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -radiantheater = express_getattr(IfcElectricApplianceTypeEnum, 'RADIANTHEATER', INDETERMINATE) -scanner = express_getattr(IfcElectricApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telephone = express_getattr(IfcElectricApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -tv = express_getattr(IfcElectricApplianceTypeEnum, 'TV', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -waterheater = express_getattr(IfcElectricApplianceTypeEnum, 'WATERHEATER', INDETERMINATE) -watercooler = express_getattr(IfcElectricApplianceTypeEnum, 'WATERCOOLER', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +computer = IfcElectricApplianceTypeEnum.COMPUTER +directwaterheater = IfcElectricApplianceTypeEnum.DIRECTWATERHEATER +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +electricheater = IfcElectricApplianceTypeEnum.ELECTRICHEATER +facsimile = IfcElectricApplianceTypeEnum.FACSIMILE +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +indirectwaterheater = IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +printer = IfcElectricApplianceTypeEnum.PRINTER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +radiantheater = IfcElectricApplianceTypeEnum.RADIANTHEATER +scanner = IfcElectricApplianceTypeEnum.SCANNER +telephone = IfcElectricApplianceTypeEnum.TELEPHONE +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +tv = IfcElectricApplianceTypeEnum.TV +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +waterheater = IfcElectricApplianceTypeEnum.WATERHEATER +watercooler = IfcElectricApplianceTypeEnum.WATERCOOLER +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricCurrentEnum = enum_namespace() -alternating = express_getattr(IfcElectricCurrentEnum, 'ALTERNATING', INDETERMINATE) -direct = express_getattr(IfcElectricCurrentEnum, 'DIRECT', INDETERMINATE) -notdefined = express_getattr(IfcElectricCurrentEnum, 'NOTDEFINED', INDETERMINATE) +alternating = IfcElectricCurrentEnum.ALTERNATING +direct = IfcElectricCurrentEnum.DIRECT +notdefined = IfcElectricCurrentEnum.NOTDEFINED IfcElectricDistributionPointFunctionEnum = enum_namespace() -alarmpanel = express_getattr(IfcElectricDistributionPointFunctionEnum, 'ALARMPANEL', INDETERMINATE) -consumerunit = express_getattr(IfcElectricDistributionPointFunctionEnum, 'CONSUMERUNIT', INDETERMINATE) -controlpanel = express_getattr(IfcElectricDistributionPointFunctionEnum, 'CONTROLPANEL', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionPointFunctionEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -gasdetectorpanel = express_getattr(IfcElectricDistributionPointFunctionEnum, 'GASDETECTORPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcElectricDistributionPointFunctionEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcElectricDistributionPointFunctionEnum, 'MIMICPANEL', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionPointFunctionEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionPointFunctionEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionPointFunctionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionPointFunctionEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcElectricDistributionPointFunctionEnum.ALARMPANEL +consumerunit = IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT +controlpanel = IfcElectricDistributionPointFunctionEnum.CONTROLPANEL +distributionboard = IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD +gasdetectorpanel = IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL +indicatorpanel = IfcElectricDistributionPointFunctionEnum.INDICATORPANEL +mimicpanel = IfcElectricDistributionPointFunctionEnum.MIMICPANEL +motorcontrolcentre = IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionPointFunctionEnum.SWITCHBOARD +userdefined = IfcElectricDistributionPointFunctionEnum.USERDEFINED +notdefined = IfcElectricDistributionPointFunctionEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricHeaterTypeEnum = enum_namespace() -electricpointheater = express_getattr(IfcElectricHeaterTypeEnum, 'ELECTRICPOINTHEATER', INDETERMINATE) -electriccableheater = express_getattr(IfcElectricHeaterTypeEnum, 'ELECTRICCABLEHEATER', INDETERMINATE) -electricmatheater = express_getattr(IfcElectricHeaterTypeEnum, 'ELECTRICMATHEATER', INDETERMINATE) -userdefined = express_getattr(IfcElectricHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricpointheater = IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER +electriccableheater = IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER +electricmatheater = IfcElectricHeaterTypeEnum.ELECTRICMATHEATER +userdefined = IfcElectricHeaterTypeEnum.USERDEFINED +notdefined = IfcElectricHeaterTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEnergySequenceEnum = enum_namespace() -primary = express_getattr(IfcEnergySequenceEnum, 'PRIMARY', INDETERMINATE) -secondary = express_getattr(IfcEnergySequenceEnum, 'SECONDARY', INDETERMINATE) -tertiary = express_getattr(IfcEnergySequenceEnum, 'TERTIARY', INDETERMINATE) -auxiliary = express_getattr(IfcEnergySequenceEnum, 'AUXILIARY', INDETERMINATE) -userdefined = express_getattr(IfcEnergySequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEnergySequenceEnum, 'NOTDEFINED', INDETERMINATE) +primary = IfcEnergySequenceEnum.PRIMARY +secondary = IfcEnergySequenceEnum.SECONDARY +tertiary = IfcEnergySequenceEnum.TERTIARY +auxiliary = IfcEnergySequenceEnum.AUXILIARY +userdefined = IfcEnergySequenceEnum.USERDEFINED +notdefined = IfcEnergySequenceEnum.NOTDEFINED IfcEnvironmentalImpactCategoryEnum = enum_namespace() -combinedvalue = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'COMBINEDVALUE', INDETERMINATE) -disposal = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'DISPOSAL', INDETERMINATE) -extraction = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'EXTRACTION', INDETERMINATE) -installation = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'INSTALLATION', INDETERMINATE) -manufacture = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'MANUFACTURE', INDETERMINATE) -transportation = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'TRANSPORTATION', INDETERMINATE) -userdefined = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEnvironmentalImpactCategoryEnum, 'NOTDEFINED', INDETERMINATE) +combinedvalue = IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE +disposal = IfcEnvironmentalImpactCategoryEnum.DISPOSAL +extraction = IfcEnvironmentalImpactCategoryEnum.EXTRACTION +installation = IfcEnvironmentalImpactCategoryEnum.INSTALLATION +manufacture = IfcEnvironmentalImpactCategoryEnum.MANUFACTURE +transportation = IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION +userdefined = IfcEnvironmentalImpactCategoryEnum.USERDEFINED +notdefined = IfcEnvironmentalImpactCategoryEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -electricmeter = express_getattr(IfcFlowMeterTypeEnum, 'ELECTRICMETER', INDETERMINATE) -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -flowmeter = express_getattr(IfcFlowMeterTypeEnum, 'FLOWMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricmeter = IfcFlowMeterTypeEnum.ELECTRICMETER +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +flowmeter = IfcFlowMeterTypeEnum.FLOWMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcGasTerminalTypeEnum = enum_namespace() -gasappliance = express_getattr(IfcGasTerminalTypeEnum, 'GASAPPLIANCE', INDETERMINATE) -gasbooster = express_getattr(IfcGasTerminalTypeEnum, 'GASBOOSTER', INDETERMINATE) -gasburner = express_getattr(IfcGasTerminalTypeEnum, 'GASBURNER', INDETERMINATE) -userdefined = express_getattr(IfcGasTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGasTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +gasappliance = IfcGasTerminalTypeEnum.GASAPPLIANCE +gasbooster = IfcGasTerminalTypeEnum.GASBOOSTER +gasburner = IfcGasTerminalTypeEnum.GASBURNER +userdefined = IfcGasTerminalTypeEnum.USERDEFINED +notdefined = IfcGasTerminalTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +metalhalide = IfcLampTypeEnum.METALHALIDE +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION_GROUP', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination_group = IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = express_getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +designintent = IfcObjectiveEnum.DESIGNINTENT +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderRecordTypeEnum = enum_namespace() -change = express_getattr(IfcProjectOrderRecordTypeEnum, 'CHANGE', INDETERMINATE) -maintenance = express_getattr(IfcProjectOrderRecordTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcProjectOrderRecordTypeEnum, 'MOVE', INDETERMINATE) -purchase = express_getattr(IfcProjectOrderRecordTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcProjectOrderRecordTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderRecordTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderRecordTypeEnum, 'NOTDEFINED', INDETERMINATE) +change = IfcProjectOrderRecordTypeEnum.CHANGE +maintenance = IfcProjectOrderRecordTypeEnum.MAINTENANCE +move = IfcProjectOrderRecordTypeEnum.MOVE +purchase = IfcProjectOrderRecordTypeEnum.PURCHASE +work = IfcProjectOrderRecordTypeEnum.WORK +userdefined = IfcProjectOrderRecordTypeEnum.USERDEFINED +notdefined = IfcProjectOrderRecordTypeEnum.NOTDEFINED IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcPropertySourceEnum = enum_namespace() -design = express_getattr(IfcPropertySourceEnum, 'DESIGN', INDETERMINATE) -designmaximum = express_getattr(IfcPropertySourceEnum, 'DESIGNMAXIMUM', INDETERMINATE) -designminimum = express_getattr(IfcPropertySourceEnum, 'DESIGNMINIMUM', INDETERMINATE) -simulated = express_getattr(IfcPropertySourceEnum, 'SIMULATED', INDETERMINATE) -asbuilt = express_getattr(IfcPropertySourceEnum, 'ASBUILT', INDETERMINATE) -commissioning = express_getattr(IfcPropertySourceEnum, 'COMMISSIONING', INDETERMINATE) -measured = express_getattr(IfcPropertySourceEnum, 'MEASURED', INDETERMINATE) -userdefined = express_getattr(IfcPropertySourceEnum, 'USERDEFINED', INDETERMINATE) -notknown = express_getattr(IfcPropertySourceEnum, 'NOTKNOWN', INDETERMINATE) +design = IfcPropertySourceEnum.DESIGN +designmaximum = IfcPropertySourceEnum.DESIGNMAXIMUM +designminimum = IfcPropertySourceEnum.DESIGNMINIMUM +simulated = IfcPropertySourceEnum.SIMULATED +asbuilt = IfcPropertySourceEnum.ASBUILT +commissioning = IfcPropertySourceEnum.COMMISSIONING +measured = IfcPropertySourceEnum.MEASURED +userdefined = IfcPropertySourceEnum.USERDEFINED +notknown = IfcPropertySourceEnum.NOTKNOWN IfcProtectiveDeviceTypeEnum = enum_namespace() -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthfailuredevice = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHFAILUREDEVICE', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthfailuredevice = IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcResourceConsumptionEnum = enum_namespace() -consumed = express_getattr(IfcResourceConsumptionEnum, 'CONSUMED', INDETERMINATE) -partiallyconsumed = express_getattr(IfcResourceConsumptionEnum, 'PARTIALLYCONSUMED', INDETERMINATE) -notconsumed = express_getattr(IfcResourceConsumptionEnum, 'NOTCONSUMED', INDETERMINATE) -occupied = express_getattr(IfcResourceConsumptionEnum, 'OCCUPIED', INDETERMINATE) -partiallyoccupied = express_getattr(IfcResourceConsumptionEnum, 'PARTIALLYOCCUPIED', INDETERMINATE) -notoccupied = express_getattr(IfcResourceConsumptionEnum, 'NOTOCCUPIED', INDETERMINATE) -userdefined = express_getattr(IfcResourceConsumptionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcResourceConsumptionEnum, 'NOTDEFINED', INDETERMINATE) +consumed = IfcResourceConsumptionEnum.CONSUMED +partiallyconsumed = IfcResourceConsumptionEnum.PARTIALLYCONSUMED +notconsumed = IfcResourceConsumptionEnum.NOTCONSUMED +occupied = IfcResourceConsumptionEnum.OCCUPIED +partiallyoccupied = IfcResourceConsumptionEnum.PARTIALLYOCCUPIED +notoccupied = IfcResourceConsumptionEnum.NOTOCCUPIED +userdefined = IfcResourceConsumptionEnum.USERDEFINED +notdefined = IfcResourceConsumptionEnum.NOTDEFINED IfcRibPlateDirectionEnum = enum_namespace() -direction_x = express_getattr(IfcRibPlateDirectionEnum, 'DIRECTION_X', INDETERMINATE) -direction_y = express_getattr(IfcRibPlateDirectionEnum, 'DIRECTION_Y', INDETERMINATE) +direction_x = IfcRibPlateDirectionEnum.DIRECTION_X +direction_y = IfcRibPlateDirectionEnum.DIRECTION_Y IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -comissioningengineer = express_getattr(IfcRoleEnum, 'COMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +comissioningengineer = IfcRoleEnum.COMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +notdefined = IfcSequenceEnum.NOTDEFINED IfcServiceLifeFactorTypeEnum = enum_namespace() -a_qualityofcomponents = express_getattr(IfcServiceLifeFactorTypeEnum, 'A_QUALITYOFCOMPONENTS', INDETERMINATE) -b_designlevel = express_getattr(IfcServiceLifeFactorTypeEnum, 'B_DESIGNLEVEL', INDETERMINATE) -c_workexecutionlevel = express_getattr(IfcServiceLifeFactorTypeEnum, 'C_WORKEXECUTIONLEVEL', INDETERMINATE) -d_indoorenvironment = express_getattr(IfcServiceLifeFactorTypeEnum, 'D_INDOORENVIRONMENT', INDETERMINATE) -e_outdoorenvironment = express_getattr(IfcServiceLifeFactorTypeEnum, 'E_OUTDOORENVIRONMENT', INDETERMINATE) -f_inuseconditions = express_getattr(IfcServiceLifeFactorTypeEnum, 'F_INUSECONDITIONS', INDETERMINATE) -g_maintenancelevel = express_getattr(IfcServiceLifeFactorTypeEnum, 'G_MAINTENANCELEVEL', INDETERMINATE) -userdefined = express_getattr(IfcServiceLifeFactorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcServiceLifeFactorTypeEnum, 'NOTDEFINED', INDETERMINATE) +a_qualityofcomponents = IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS +b_designlevel = IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL +c_workexecutionlevel = IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL +d_indoorenvironment = IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT +e_outdoorenvironment = IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT +f_inuseconditions = IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS +g_maintenancelevel = IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL +userdefined = IfcServiceLifeFactorTypeEnum.USERDEFINED +notdefined = IfcServiceLifeFactorTypeEnum.NOTDEFINED IfcServiceLifeTypeEnum = enum_namespace() -actualservicelife = express_getattr(IfcServiceLifeTypeEnum, 'ACTUALSERVICELIFE', INDETERMINATE) -expectedservicelife = express_getattr(IfcServiceLifeTypeEnum, 'EXPECTEDSERVICELIFE', INDETERMINATE) -optimisticreferenceservicelife = express_getattr(IfcServiceLifeTypeEnum, 'OPTIMISTICREFERENCESERVICELIFE', INDETERMINATE) -pessimisticreferenceservicelife = express_getattr(IfcServiceLifeTypeEnum, 'PESSIMISTICREFERENCESERVICELIFE', INDETERMINATE) -referenceservicelife = express_getattr(IfcServiceLifeTypeEnum, 'REFERENCESERVICELIFE', INDETERMINATE) +actualservicelife = IfcServiceLifeTypeEnum.ACTUALSERVICELIFE +expectedservicelife = IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE +optimisticreferenceservicelife = IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE +pessimisticreferenceservicelife = IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE +referenceservicelife = IfcServiceLifeTypeEnum.REFERENCESERVICELIFE IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSoundScaleEnum = enum_namespace() -dba = express_getattr(IfcSoundScaleEnum, 'DBA', INDETERMINATE) -dbb = express_getattr(IfcSoundScaleEnum, 'DBB', INDETERMINATE) -dbc = express_getattr(IfcSoundScaleEnum, 'DBC', INDETERMINATE) -nc = express_getattr(IfcSoundScaleEnum, 'NC', INDETERMINATE) -nr = express_getattr(IfcSoundScaleEnum, 'NR', INDETERMINATE) -userdefined = express_getattr(IfcSoundScaleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSoundScaleEnum, 'NOTDEFINED', INDETERMINATE) +dba = IfcSoundScaleEnum.DBA +dbb = IfcSoundScaleEnum.DBB +dbc = IfcSoundScaleEnum.DBC +nc = IfcSoundScaleEnum.NC +nr = IfcSoundScaleEnum.NR +userdefined = IfcSoundScaleEnum.USERDEFINED +notdefined = IfcSoundScaleEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -sectionalradiator = express_getattr(IfcSpaceHeaterTypeEnum, 'SECTIONALRADIATOR', INDETERMINATE) -panelradiator = express_getattr(IfcSpaceHeaterTypeEnum, 'PANELRADIATOR', INDETERMINATE) -tubularradiator = express_getattr(IfcSpaceHeaterTypeEnum, 'TUBULARRADIATOR', INDETERMINATE) -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -baseboardheater = express_getattr(IfcSpaceHeaterTypeEnum, 'BASEBOARDHEATER', INDETERMINATE) -finnedtubeunit = express_getattr(IfcSpaceHeaterTypeEnum, 'FINNEDTUBEUNIT', INDETERMINATE) -unitheater = express_getattr(IfcSpaceHeaterTypeEnum, 'UNITHEATER', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +sectionalradiator = IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR +panelradiator = IfcSpaceHeaterTypeEnum.PANELRADIATOR +tubularradiator = IfcSpaceHeaterTypeEnum.TUBULARRADIATOR +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +baseboardheater = IfcSpaceHeaterTypeEnum.BASEBOARDHEATER +finnedtubeunit = IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT +unitheater = IfcSpaceHeaterTypeEnum.UNITHEATER +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveTypeEnum.CABLE +tension_member = IfcStructuralCurveTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveTypeEnum.NOTDEFINED IfcStructuralSurfaceTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceTypeEnum.SHELL +userdefined = IfcStructuralSurfaceTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSurfaceTextureEnum = enum_namespace() -bump = express_getattr(IfcSurfaceTextureEnum, 'BUMP', INDETERMINATE) -opacity = express_getattr(IfcSurfaceTextureEnum, 'OPACITY', INDETERMINATE) -reflection = express_getattr(IfcSurfaceTextureEnum, 'REFLECTION', INDETERMINATE) -selfillumination = express_getattr(IfcSurfaceTextureEnum, 'SELFILLUMINATION', INDETERMINATE) -shininess = express_getattr(IfcSurfaceTextureEnum, 'SHININESS', INDETERMINATE) -specular = express_getattr(IfcSurfaceTextureEnum, 'SPECULAR', INDETERMINATE) -texture = express_getattr(IfcSurfaceTextureEnum, 'TEXTURE', INDETERMINATE) -transparencymap = express_getattr(IfcSurfaceTextureEnum, 'TRANSPARENCYMAP', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceTextureEnum, 'NOTDEFINED', INDETERMINATE) +bump = IfcSurfaceTextureEnum.BUMP +opacity = IfcSurfaceTextureEnum.OPACITY +reflection = IfcSurfaceTextureEnum.REFLECTION +selfillumination = IfcSurfaceTextureEnum.SELFILLUMINATION +shininess = IfcSurfaceTextureEnum.SHININESS +specular = IfcSurfaceTextureEnum.SPECULAR +texture = IfcSurfaceTextureEnum.TEXTURE +transparencymap = IfcSurfaceTextureEnum.TRANSPARENCYMAP +notdefined = IfcSurfaceTextureEnum.NOTDEFINED IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -preformed = express_getattr(IfcTankTypeEnum, 'PREFORMED', INDETERMINATE) -sectional = express_getattr(IfcTankTypeEnum, 'SECTIONAL', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +preformed = IfcTankTypeEnum.PREFORMED +sectional = IfcTankTypeEnum.SECTIONAL +expansion = IfcTankTypeEnum.EXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcThermalLoadSourceEnum = enum_namespace() -people = express_getattr(IfcThermalLoadSourceEnum, 'PEOPLE', INDETERMINATE) -lighting = express_getattr(IfcThermalLoadSourceEnum, 'LIGHTING', INDETERMINATE) -equipment = express_getattr(IfcThermalLoadSourceEnum, 'EQUIPMENT', INDETERMINATE) -ventilationindoorair = express_getattr(IfcThermalLoadSourceEnum, 'VENTILATIONINDOORAIR', INDETERMINATE) -ventilationoutsideair = express_getattr(IfcThermalLoadSourceEnum, 'VENTILATIONOUTSIDEAIR', INDETERMINATE) -recirculatedair = express_getattr(IfcThermalLoadSourceEnum, 'RECIRCULATEDAIR', INDETERMINATE) -exhaustair = express_getattr(IfcThermalLoadSourceEnum, 'EXHAUSTAIR', INDETERMINATE) -airexchangerate = express_getattr(IfcThermalLoadSourceEnum, 'AIREXCHANGERATE', INDETERMINATE) -drybulbtemperature = express_getattr(IfcThermalLoadSourceEnum, 'DRYBULBTEMPERATURE', INDETERMINATE) -relativehumidity = express_getattr(IfcThermalLoadSourceEnum, 'RELATIVEHUMIDITY', INDETERMINATE) -infiltration = express_getattr(IfcThermalLoadSourceEnum, 'INFILTRATION', INDETERMINATE) -userdefined = express_getattr(IfcThermalLoadSourceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcThermalLoadSourceEnum, 'NOTDEFINED', INDETERMINATE) +people = IfcThermalLoadSourceEnum.PEOPLE +lighting = IfcThermalLoadSourceEnum.LIGHTING +equipment = IfcThermalLoadSourceEnum.EQUIPMENT +ventilationindoorair = IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR +ventilationoutsideair = IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR +recirculatedair = IfcThermalLoadSourceEnum.RECIRCULATEDAIR +exhaustair = IfcThermalLoadSourceEnum.EXHAUSTAIR +airexchangerate = IfcThermalLoadSourceEnum.AIREXCHANGERATE +drybulbtemperature = IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE +relativehumidity = IfcThermalLoadSourceEnum.RELATIVEHUMIDITY +infiltration = IfcThermalLoadSourceEnum.INFILTRATION +userdefined = IfcThermalLoadSourceEnum.USERDEFINED +notdefined = IfcThermalLoadSourceEnum.NOTDEFINED IfcThermalLoadTypeEnum = enum_namespace() -sensible = express_getattr(IfcThermalLoadTypeEnum, 'SENSIBLE', INDETERMINATE) -latent = express_getattr(IfcThermalLoadTypeEnum, 'LATENT', INDETERMINATE) -radiant = express_getattr(IfcThermalLoadTypeEnum, 'RADIANT', INDETERMINATE) -notdefined = express_getattr(IfcThermalLoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +sensible = IfcThermalLoadTypeEnum.SENSIBLE +latent = IfcThermalLoadTypeEnum.LATENT +radiant = IfcThermalLoadTypeEnum.RADIANT +notdefined = IfcThermalLoadTypeEnum.NOTDEFINED IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTimeSeriesScheduleTypeEnum = enum_namespace() -annual = express_getattr(IfcTimeSeriesScheduleTypeEnum, 'ANNUAL', INDETERMINATE) -monthly = express_getattr(IfcTimeSeriesScheduleTypeEnum, 'MONTHLY', INDETERMINATE) -weekly = express_getattr(IfcTimeSeriesScheduleTypeEnum, 'WEEKLY', INDETERMINATE) -daily = express_getattr(IfcTimeSeriesScheduleTypeEnum, 'DAILY', INDETERMINATE) -userdefined = express_getattr(IfcTimeSeriesScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +annual = IfcTimeSeriesScheduleTypeEnum.ANNUAL +monthly = IfcTimeSeriesScheduleTypeEnum.MONTHLY +weekly = IfcTimeSeriesScheduleTypeEnum.WEEKLY +daily = IfcTimeSeriesScheduleTypeEnum.DAILY +userdefined = IfcTimeSeriesScheduleTypeEnum.USERDEFINED +notdefined = IfcTimeSeriesScheduleTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +shear = IfcWallTypeEnum.SHEAR +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -greaseinterceptor = express_getattr(IfcWasteTerminalTypeEnum, 'GREASEINTERCEPTOR', INDETERMINATE) -oilinterceptor = express_getattr(IfcWasteTerminalTypeEnum, 'OILINTERCEPTOR', INDETERMINATE) -petrolinterceptor = express_getattr(IfcWasteTerminalTypeEnum, 'PETROLINTERCEPTOR', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +greaseinterceptor = IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR +oilinterceptor = IfcWasteTerminalTypeEnum.OILINTERCEPTOR +petrolinterceptor = IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWorkControlTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkControlTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkControlTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkControlTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkControlTypeEnum.ACTUAL +baseline = IfcWorkControlTypeEnum.BASELINE +planned = IfcWorkControlTypeEnum.PLANNED +userdefined = IfcWorkControlTypeEnum.USERDEFINED +notdefined = IfcWorkControlTypeEnum.NOTDEFINED def Ifc2DCompositeCurve(*args, **kwargs): return ifcopenshell.create_entity('Ifc2DCompositeCurve', 'IFC2X3', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py index bf5e86438f..791737c57a 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,1844 +152,1844 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = express_getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = express_getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementTypeEnum.CRANEWAY +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py index afb4197c87..f07f0ee248 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,1860 +152,1860 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = express_getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = express_getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = express_getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = express_getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = express_getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = express_getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = express_getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementTypeEnum.CRANEWAY +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X1', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py index 9ea3753faf..80376eff4c 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,1966 +152,1966 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = express_getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = express_getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = express_getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = express_getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = express_getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = express_getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = express_getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = express_getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = express_getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementTypeEnum.CRANEWAY +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X2', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py index 9d2f638222..3e99f58511 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2423 +152,2423 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -asbuiltarea = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -asbuiltpoint = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -assumedarea = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -assumedline = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -assumedpoint = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -non_physical_signal = express_getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -superelevationevent = express_getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = express_getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -free_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -guided_longitudinal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -erosionprevention = express_getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = express_getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -reinforcing = express_getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = express_getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = express_getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = express_getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = express_getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = express_getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = express_getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = express_getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = express_getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +plastic = IfcDoorStyleConstructionEnum.PLASTIC +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_panel_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_DOUBLE_SWING', INDETERMINATE) -double_panel_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_FOLDING', INDETERMINATE) -double_panel_lifting_vertical = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_LIFTING_VERTICAL', INDETERMINATE) -double_panel_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING', INDETERMINATE) -double_panel_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_panel_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_panel_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SLIDING', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_HORIZONTAL', INDETERMINATE) -revolving_vertical = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_double_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING +double_panel_folding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING +double_panel_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL +double_panel_single_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING +double_panel_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT +double_panel_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT +double_panel_sliding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving_horizontal = IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = express_getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = express_getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = express_getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = express_getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = express_getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = express_getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectTypeEnum = enum_namespace() -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +actor = IfcObjectTypeEnum.ACTOR +control = IfcObjectTypeEnum.CONTROL +group = IfcObjectTypeEnum.GROUP +process = IfcObjectTypeEnum.PROCESS +product = IfcObjectTypeEnum.PRODUCT +project = IfcObjectTypeEnum.PROJECT +resource = IfcObjectTypeEnum.RESOURCE +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = express_getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = express_getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -dilatationsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -linesidestructure = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -linesidestructurepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -plaintracksuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPERSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -trackstructure = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -turnoutsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +plaintracksuperstructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = express_getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = express_getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = express_getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = express_getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = express_getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = express_getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = express_getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = express_getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = express_getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = express_getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = express_getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = express_getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = express_getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = express_getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = express_getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = express_getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = express_getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = express_getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = express_getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = express_getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = express_getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = express_getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = express_getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = express_getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = express_getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = express_getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = express_getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = express_getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +plastic = IfcWindowStyleConstructionEnum.PLASTIC +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py index 2fcbb1f734..64f436782a 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2361 +152,2361 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -asbuiltarea = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -asbuiltpoint = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -assumedarea = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -assumedline = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -assumedpoint = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -non_physical_signal = express_getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -superelevationevent = express_getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = express_getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = express_getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = express_getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = express_getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = express_getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = express_getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = express_getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = express_getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = express_getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_lifting_vertical = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_LIFTING_VERTICAL', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -revolving_vertical = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +double_door_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_DOOR_LIFTING_VERTICAL +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving = IfcDoorTypeOperationEnum.REVOLVING +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = express_getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = express_getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = express_getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = express_getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKerbTypeEnum = enum_namespace() -userdefined = express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcKerbTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcKerbTypeEnum.USERDEFINED +notdefined = IfcKerbTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = express_getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = express_getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = express_getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = express_getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -dilatationsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -linesidestructure = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -linesidestructurepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -plaintracksuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPERSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -trackstructure = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -turnoutsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +plaintracksuperstructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = express_getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = express_getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = express_getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = express_getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = express_getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = express_getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = express_getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = express_getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = express_getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = express_getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = express_getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = express_getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = express_getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = express_getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = express_getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = express_getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = express_getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = express_getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = express_getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = express_getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = express_getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = express_getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = express_getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = express_getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = express_getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = express_getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = express_getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = express_getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_ADD1', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py index 5e6f27dd99..5eebf0d4d4 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2365 +152,2365 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -contourline = express_getattr(IfcAnnotationTypeEnum, 'CONTOURLINE', INDETERMINATE) -dimension = express_getattr(IfcAnnotationTypeEnum, 'DIMENSION', INDETERMINATE) -isobar = express_getattr(IfcAnnotationTypeEnum, 'ISOBAR', INDETERMINATE) -isolux = express_getattr(IfcAnnotationTypeEnum, 'ISOLUX', INDETERMINATE) -isotherm = express_getattr(IfcAnnotationTypeEnum, 'ISOTHERM', INDETERMINATE) -leader = express_getattr(IfcAnnotationTypeEnum, 'LEADER', INDETERMINATE) -survey = express_getattr(IfcAnnotationTypeEnum, 'SURVEY', INDETERMINATE) -symbol = express_getattr(IfcAnnotationTypeEnum, 'SYMBOL', INDETERMINATE) -text = express_getattr(IfcAnnotationTypeEnum, 'TEXT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +contourline = IfcAnnotationTypeEnum.CONTOURLINE +dimension = IfcAnnotationTypeEnum.DIMENSION +isobar = IfcAnnotationTypeEnum.ISOBAR +isolux = IfcAnnotationTypeEnum.ISOLUX +isotherm = IfcAnnotationTypeEnum.ISOTHERM +leader = IfcAnnotationTypeEnum.LEADER +survey = IfcAnnotationTypeEnum.SURVEY +symbol = IfcAnnotationTypeEnum.SYMBOL +text = IfcAnnotationTypeEnum.TEXT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -modulo = express_getattr(IfcArithmeticOperatorEnum, 'MODULO', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +modulo = IfcArithmeticOperatorEnum.MODULO +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = express_getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = express_getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = express_getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = express_getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = express_getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = express_getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = express_getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = express_getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_lifting_vertical = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_LIFTING_VERTICAL', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -revolving_vertical = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +double_door_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_DOOR_LIFTING_VERTICAL +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving = IfcDoorTypeOperationEnum.REVOLVING +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = express_getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = express_getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = express_getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = express_getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKerbTypeEnum = enum_namespace() -userdefined = express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcKerbTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcKerbTypeEnum.USERDEFINED +notdefined = IfcKerbTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = express_getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = express_getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = express_getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = express_getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -abovetrack = express_getattr(IfcRailwayPartTypeEnum, 'ABOVETRACK', INDETERMINATE) -dilationtrack = express_getattr(IfcRailwayPartTypeEnum, 'DILATIONTRACK', INDETERMINATE) -lineside = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDE', INDETERMINATE) -linesidepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDEPART', INDETERMINATE) -plaintrack = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACK', INDETERMINATE) -substructure = express_getattr(IfcRailwayPartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -track = express_getattr(IfcRailwayPartTypeEnum, 'TRACK', INDETERMINATE) -trackpart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKPART', INDETERMINATE) -turnouttrack = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTTRACK', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovetrack = IfcRailwayPartTypeEnum.ABOVETRACK +dilationtrack = IfcRailwayPartTypeEnum.DILATIONTRACK +lineside = IfcRailwayPartTypeEnum.LINESIDE +linesidepart = IfcRailwayPartTypeEnum.LINESIDEPART +plaintrack = IfcRailwayPartTypeEnum.PLAINTRACK +substructure = IfcRailwayPartTypeEnum.SUBSTRUCTURE +track = IfcRailwayPartTypeEnum.TRACK +trackpart = IfcRailwayPartTypeEnum.TRACKPART +turnouttrack = IfcRailwayPartTypeEnum.TURNOUTTRACK +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = express_getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = express_getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = express_getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = express_getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -superelevationevent = express_getattr(IfcReferentTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = express_getattr(IfcReferentTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +superelevationevent = IfcReferentTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcReferentTypeEnum.WIDTHEVENT +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = express_getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = express_getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = express_getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = express_getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = express_getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = express_getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = express_getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = express_getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = express_getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = express_getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = express_getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = express_getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = express_getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = express_getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = express_getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = express_getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = express_getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = express_getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = express_getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = express_getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = express_getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = express_getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = express_getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = express_getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_ADD2', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py index 13e34ec4f8..ee645919aa 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2337 +152,2337 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = express_getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = express_getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = express_getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -railway_communication_terminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RAILWAY_COMMUNICATION_TERMINAL', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +railway_communication_terminal = IfcAudioVisualApplianceTypeEnum.RAILWAY_COMMUNICATION_TERMINAL +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = express_getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = express_getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = express_getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -mooringsystem = express_getattr(IfcBuiltSystemTypeEnum, 'MOORINGSYSTEM', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +mooringsystem = IfcBuiltSystemTypeEnum.MOORINGSYSTEM +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligent_peripheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENT_PERIPHERAL', INDETERMINATE) -ip_network_equipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IP_NETWORK_EQUIPMENT', INDETERMINATE) -optical_network_unit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICAL_NETWORK_UNIT', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligent_peripheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENT_PERIPHERAL +ip_network_equipment = IfcCommunicationsApplianceTypeEnum.IP_NETWORK_EQUIPMENT +optical_network_unit = IfcCommunicationsApplianceTypeEnum.OPTICAL_NETWORK_UNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -embankment = express_getattr(IfcMarineFacilityTypeEnum, 'EMBANKMENT', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +embankment = IfcMarineFacilityTypeEnum.EMBANKMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storage = express_getattr(IfcMarinePartTypeEnum, 'STORAGE', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storage = IfcMarinePartTypeEnum.STORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remote_radio_unit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTE_RADIO_UNIT', INDETERMINATE) -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remote_radio_unit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTE_RADIO_UNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = express_getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = express_getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = express_getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = express_getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = express_getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = express_getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = express_getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = express_getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = express_getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC1', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py index 516271085a..0303689be5 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2360 +152,2360 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -constantcant = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -lineartransition = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -biquadraticparabola = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +biquadraticparabola = IfcAlignmentCantSegmentTypeEnum.BIQUADRATICPARABOLA +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -line = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cubicspiral = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBICSPIRAL', INDETERMINATE) -biquadraticparabola = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cubicspiral = IfcAlignmentHorizontalSegmentTypeEnum.CUBICSPIRAL +biquadraticparabola = IfcAlignmentHorizontalSegmentTypeEnum.BIQUADRATICPARABOLA +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -constantgradient = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -parabolicarc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = express_getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = express_getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = express_getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -railway_communication_terminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RAILWAY_COMMUNICATION_TERMINAL', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +railway_communication_terminal = IfcAudioVisualApplianceTypeEnum.RAILWAY_COMMUNICATION_TERMINAL +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = express_getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = express_getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = express_getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -mooringsystem = express_getattr(IfcBuiltSystemTypeEnum, 'MOORINGSYSTEM', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +mooringsystem = IfcBuiltSystemTypeEnum.MOORINGSYSTEM +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligent_peripheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENT_PERIPHERAL', INDETERMINATE) -ip_network_equipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IP_NETWORK_EQUIPMENT', INDETERMINATE) -optical_network_unit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICAL_NETWORK_UNIT', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligent_peripheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENT_PERIPHERAL +ip_network_equipment = IfcCommunicationsApplianceTypeEnum.IP_NETWORK_EQUIPMENT +optical_network_unit = IfcCommunicationsApplianceTypeEnum.OPTICAL_NETWORK_UNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -embankment = express_getattr(IfcMarineFacilityTypeEnum, 'EMBANKMENT', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +embankment = IfcMarineFacilityTypeEnum.EMBANKMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storage = express_getattr(IfcMarinePartTypeEnum, 'STORAGE', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storage = IfcMarinePartTypeEnum.STORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remote_radio_unit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTE_RADIO_UNIT', INDETERMINATE) -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remote_radio_unit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTE_RADIO_UNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = express_getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = express_getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = express_getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = express_getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = express_getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = express_getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = express_getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = express_getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = express_getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC2', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py index 02c8a5a37d..38e4f8b448 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2373 +152,2373 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -constantcant = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -lineartransition = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -blosscurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -line = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cubic = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -blosscurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cubicspiral = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBICSPIRAL', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +cubicspiral = IfcAlignmentHorizontalSegmentTypeEnum.CUBICSPIRAL +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -constantgradient = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -parabolicarc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = express_getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = express_getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = express_getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -railway_communication_terminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RAILWAY_COMMUNICATION_TERMINAL', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +railway_communication_terminal = IfcAudioVisualApplianceTypeEnum.RAILWAY_COMMUNICATION_TERMINAL +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = express_getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = express_getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = express_getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -mooringsystem = express_getattr(IfcBuiltSystemTypeEnum, 'MOORINGSYSTEM', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +mooringsystem = IfcBuiltSystemTypeEnum.MOORINGSYSTEM +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligent_peripheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENT_PERIPHERAL', INDETERMINATE) -ip_network_equipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IP_NETWORK_EQUIPMENT', INDETERMINATE) -optical_network_unit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICAL_NETWORK_UNIT', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligent_peripheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENT_PERIPHERAL +ip_network_equipment = IfcCommunicationsApplianceTypeEnum.IP_NETWORK_EQUIPMENT +optical_network_unit = IfcCommunicationsApplianceTypeEnum.OPTICAL_NETWORK_UNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -pointmachinemountingdevice = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_panel_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING', INDETERMINATE) -double_panel_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_panel_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_panel_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_panel_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_panel_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_FOLDING', INDETERMINATE) -revolving_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_HORIZONTAL', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -double_panel_lifting_vertical = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_LIFTING_VERTICAL', INDETERMINATE) -lifting_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving_vertical = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_panel_single_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING +double_panel_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT +double_panel_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_panel_double_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_panel_sliding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_panel_folding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING +revolving_horizontal = IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +double_panel_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -firemonitor = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -revetment = express_getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +revetment = IfcMarineFacilityTypeEnum.REVETMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storage = express_getattr(IfcMarinePartTypeEnum, 'STORAGE', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storage = IfcMarinePartTypeEnum.STORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remote_radio_unit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTE_RADIO_UNIT', INDETERMINATE) -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remote_radio_unit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTE_RADIO_UNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = express_getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = express_getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -berth = express_getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +berth = IfcSpaceTypeEnum.BERTH +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = express_getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -haulinggear = express_getattr(IfcTransportElementFixedTypeEnum, 'HAULINGGEAR', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +haulinggear = IfcTransportElementFixedTypeEnum.HAULINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = express_getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = express_getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC3', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py index c83c75b94a..1a0dbfb756 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2392 +152,2392 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -line = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cubic = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -blosscurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -constantgradient = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -parabolicarc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = express_getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = express_getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = express_getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -communicationterminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -recordingequipment = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = express_getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = express_getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = express_getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = express_getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = express_getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligentperipheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -opticalnetworkunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -opticallineterminal = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -linesideelectronicunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -radioblockcenter = express_getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -pointmachinemountingdevice = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -dispatchingboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -fixedtransmissionnetwork = express_getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -operationaltelephonysystem = express_getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -mobilenetwork = express_getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = express_getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = express_getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = express_getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = express_getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_panel_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING', INDETERMINATE) -double_panel_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_panel_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_panel_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_panel_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SLIDING', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_panel_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_FOLDING', INDETERMINATE) -revolving_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_HORIZONTAL', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -double_panel_lifting_vertical = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_LIFTING_VERTICAL', INDETERMINATE) -lifting_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving_vertical = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_panel_single_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING +double_panel_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT +double_panel_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_panel_double_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_panel_sliding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_panel_folding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING +revolving_horizontal = IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +double_panel_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -firemonitor = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -revetment = express_getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +revetment = IfcMarineFacilityTypeEnum.REVETMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storagearea = express_getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remoteradiounit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -gateway_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -mobileswitchingcenter = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -service_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectTypeEnum = enum_namespace() -product = express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = express_getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = express_getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -landmark = express_getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -boundary = express_getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = express_getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -position = express_getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +landmark = IfcReferentTypeEnum.LANDMARK +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +position = IfcReferentTypeEnum.POSITION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -berth = express_getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +berth = IfcSpaceTypeEnum.BERTH +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -interference = express_getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = express_getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = express_getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -haulinggear = express_getattr(IfcTransportElementFixedTypeEnum, 'HAULINGGEAR', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +haulinggear = IfcTransportElementFixedTypeEnum.HAULINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = express_getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = express_getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = express_getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -basestationcontroller = express_getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = express_getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = express_getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = express_getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = express_getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = express_getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = express_getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = express_getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC4', *args, **kwargs) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py index ec18f39a93..ce2c064993 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -149,2361 +152,2361 @@ class enum_namespace: def __getattr__(self, k): return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = express_getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = express_getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = express_getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = express_getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = express_getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = express_getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = express_getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = express_getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = express_getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = express_getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = express_getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = express_getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = express_getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = express_getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = express_getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = express_getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = express_getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = express_getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = express_getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = express_getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = express_getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = express_getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = express_getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = express_getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = express_getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = express_getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = express_getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = express_getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = express_getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = express_getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = express_getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = express_getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = express_getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = express_getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = express_getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = express_getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = express_getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = express_getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = express_getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = express_getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = express_getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = express_getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = express_getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = express_getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = express_getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = express_getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = express_getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = express_getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = express_getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = express_getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = express_getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = express_getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = express_getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = express_getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = express_getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = express_getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = express_getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = express_getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = express_getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = express_getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = express_getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = express_getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -asbuiltarea = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -asbuiltpoint = express_getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -assumedarea = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -assumedline = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -assumedpoint = express_getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -non_physical_signal = express_getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -superelevationevent = express_getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = express_getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = express_getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = express_getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = express_getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = express_getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = express_getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = express_getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = express_getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = express_getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = express_getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = express_getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = express_getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = express_getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = express_getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = express_getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = express_getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = express_getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = express_getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = express_getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = express_getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = express_getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = express_getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = express_getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = express_getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = express_getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = express_getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = express_getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = express_getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = express_getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = express_getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = express_getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = express_getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = express_getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = express_getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = express_getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = express_getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = express_getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = express_getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = express_getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = express_getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = express_getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = express_getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = express_getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = express_getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = express_getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = express_getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = express_getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = express_getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = express_getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = express_getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = express_getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = express_getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = express_getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = express_getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = express_getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = express_getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = express_getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = express_getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = express_getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = express_getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = express_getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = express_getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = express_getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = express_getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = express_getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = express_getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = express_getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = express_getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = express_getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = express_getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = express_getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = express_getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = express_getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = express_getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = express_getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = express_getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = express_getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = express_getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = express_getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = express_getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = express_getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = express_getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = express_getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = express_getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = express_getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = express_getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = express_getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = express_getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = express_getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = express_getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforspace = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -provisionforvoid = express_getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = express_getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = express_getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = express_getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = express_getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = express_getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = express_getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = express_getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = express_getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = express_getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = express_getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = express_getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = express_getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = express_getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = express_getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = express_getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = express_getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = express_getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = express_getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -reducer = express_getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = express_getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = express_getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = express_getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = express_getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = express_getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = express_getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = express_getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = express_getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = express_getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = express_getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = express_getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = express_getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = express_getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = express_getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = express_getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = express_getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = express_getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = express_getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = express_getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = express_getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = express_getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = express_getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = express_getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = express_getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = express_getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = express_getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = express_getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = express_getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = express_getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = express_getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = express_getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = express_getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = express_getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = express_getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = express_getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = express_getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = express_getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = express_getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = express_getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = express_getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = express_getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = express_getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = express_getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = express_getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = express_getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = express_getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = express_getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = express_getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = express_getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = express_getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = express_getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = express_getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = express_getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = express_getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = express_getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = express_getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = express_getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = express_getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = express_getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = express_getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = express_getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = express_getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = express_getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = express_getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = express_getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = express_getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = express_getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = express_getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = express_getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = express_getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = express_getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = express_getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = express_getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = express_getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = express_getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = express_getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = express_getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = express_getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = express_getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = express_getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = express_getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = express_getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = express_getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = express_getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = express_getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = express_getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = express_getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = express_getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = express_getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = express_getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = express_getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = express_getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = express_getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = express_getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = express_getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = express_getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = express_getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = express_getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = express_getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = express_getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = express_getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = express_getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = express_getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = express_getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = express_getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = express_getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = express_getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = express_getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = express_getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = express_getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = express_getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = express_getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = express_getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = express_getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = express_getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = express_getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = express_getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = express_getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = express_getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = express_getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = express_getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = express_getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = express_getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = express_getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = express_getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = express_getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = express_getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = express_getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = express_getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = express_getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = express_getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = express_getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = express_getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = express_getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = express_getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = express_getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = express_getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = express_getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = express_getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = express_getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = express_getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = express_getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = express_getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = express_getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = express_getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = express_getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = express_getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = express_getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = express_getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = express_getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = express_getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = express_getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = express_getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = express_getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = express_getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = express_getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = express_getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = express_getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = express_getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = express_getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = express_getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = express_getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = express_getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = express_getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = express_getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = express_getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = express_getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = express_getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = express_getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = express_getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = express_getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = express_getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = express_getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = express_getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = express_getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = express_getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = express_getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = express_getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = express_getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = express_getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = express_getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = express_getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = express_getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = express_getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = express_getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = express_getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = express_getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = express_getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = express_getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = express_getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = express_getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = express_getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = express_getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = express_getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = express_getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = express_getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = express_getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = express_getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = express_getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = express_getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = express_getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = express_getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = express_getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = express_getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = express_getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = express_getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = express_getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = express_getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = express_getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = express_getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = express_getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = express_getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = express_getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = express_getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = express_getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = express_getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = express_getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = express_getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = express_getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = express_getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = express_getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = express_getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = express_getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = express_getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = express_getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = express_getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = express_getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = express_getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = express_getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = express_getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = express_getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = express_getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = express_getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = express_getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = express_getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = express_getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = express_getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = express_getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = express_getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = express_getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = express_getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = express_getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = express_getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = express_getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = express_getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = express_getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = express_getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = express_getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = express_getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = express_getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = express_getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = express_getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = express_getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = express_getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = express_getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = express_getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = express_getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = express_getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = express_getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = express_getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = express_getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = express_getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = express_getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = express_getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = express_getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_door_double_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_lifting_vertical = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_LIFTING_VERTICAL', INDETERMINATE) -double_door_single_swing = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = express_getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -revolving_vertical = express_getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = express_getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = express_getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = express_getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = express_getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = express_getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +double_door_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_DOOR_LIFTING_VERTICAL +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving = IfcDoorTypeOperationEnum.REVOLVING +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = express_getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = express_getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = express_getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = express_getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = express_getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = express_getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = express_getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = express_getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = express_getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = express_getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = express_getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = express_getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = express_getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = express_getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = express_getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = express_getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = express_getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = express_getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = express_getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = express_getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = express_getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = express_getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = express_getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = express_getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = express_getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = express_getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = express_getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = express_getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = express_getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = express_getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = express_getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = express_getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = express_getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = express_getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = express_getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = express_getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = express_getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = express_getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = express_getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = express_getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = express_getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = express_getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = express_getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = express_getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = express_getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = express_getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = express_getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = express_getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = express_getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = express_getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = express_getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = express_getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = express_getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = express_getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = express_getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = express_getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = express_getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = express_getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = express_getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = express_getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = express_getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = express_getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = express_getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = express_getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = express_getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = express_getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = express_getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = express_getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = express_getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = express_getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = express_getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = express_getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = express_getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = express_getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = express_getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = express_getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = express_getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = express_getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = express_getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = express_getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = express_getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = express_getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = express_getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = express_getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = express_getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = express_getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = express_getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = express_getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = express_getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = express_getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = express_getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = express_getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = express_getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = express_getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = express_getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = express_getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = express_getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = express_getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = express_getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = express_getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = express_getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = express_getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = express_getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = express_getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = express_getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = express_getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = express_getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = express_getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = express_getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = express_getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = express_getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = express_getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = express_getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = express_getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = express_getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = express_getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = express_getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = express_getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = express_getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = express_getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = express_getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = express_getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = express_getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = express_getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = express_getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = express_getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = express_getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = express_getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = express_getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = express_getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = express_getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = express_getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = express_getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = express_getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = express_getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = express_getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = express_getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = express_getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = express_getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = express_getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = express_getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = express_getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = express_getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = express_getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = express_getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = express_getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = express_getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = express_getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = express_getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = express_getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = express_getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = express_getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = express_getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = express_getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = express_getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = express_getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = express_getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = express_getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = express_getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = express_getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = express_getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = express_getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = express_getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = express_getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = express_getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = express_getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = express_getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = express_getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = express_getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = express_getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = express_getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = express_getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = express_getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKerbTypeEnum = enum_namespace() -userdefined = express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcKerbTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcKerbTypeEnum.USERDEFINED +notdefined = IfcKerbTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = express_getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = express_getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = express_getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = express_getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = express_getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = express_getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = express_getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = express_getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = express_getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = express_getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = express_getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = express_getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = express_getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = express_getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = express_getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = express_getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = express_getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = express_getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = express_getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = express_getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = express_getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = express_getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = express_getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = express_getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = express_getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = express_getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = express_getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = express_getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = express_getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = express_getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = express_getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = express_getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = express_getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = express_getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = express_getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = express_getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = express_getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = express_getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = express_getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = express_getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = express_getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = express_getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = express_getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = express_getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = express_getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = express_getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = express_getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = express_getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = express_getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = express_getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = express_getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = express_getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = express_getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = express_getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = express_getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = express_getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = express_getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = express_getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = express_getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = express_getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = express_getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = express_getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = express_getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = express_getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = express_getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = express_getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = express_getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = express_getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = express_getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = express_getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = express_getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = express_getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = express_getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = express_getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = express_getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = express_getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = express_getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = express_getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = express_getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = express_getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = express_getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = express_getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = express_getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = express_getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = express_getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = express_getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = express_getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = express_getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = express_getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = express_getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = express_getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = express_getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = express_getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = express_getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = express_getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = express_getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = express_getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = express_getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = express_getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = express_getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = express_getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = express_getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = express_getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = express_getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = express_getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = express_getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = express_getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = express_getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = express_getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = express_getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = express_getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = express_getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = express_getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = express_getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = express_getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = express_getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = express_getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = express_getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = express_getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = express_getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = express_getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = express_getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = express_getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = express_getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = express_getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = express_getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = express_getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = express_getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = express_getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = express_getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = express_getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = express_getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = express_getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = express_getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = express_getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = express_getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = express_getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = express_getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = express_getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = express_getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = express_getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = express_getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = express_getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = express_getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = express_getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = express_getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = express_getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = express_getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = express_getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = express_getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = express_getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = express_getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = express_getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = express_getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = express_getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = express_getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = express_getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = express_getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = express_getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = express_getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = express_getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = express_getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = express_getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = express_getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = express_getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = express_getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = express_getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = express_getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = express_getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = express_getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = express_getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = express_getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = express_getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = express_getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = express_getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = express_getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = express_getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = express_getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = express_getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = express_getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = express_getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = express_getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = express_getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = express_getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = express_getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = express_getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = express_getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = express_getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = express_getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = express_getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = express_getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = express_getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = express_getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = express_getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = express_getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = express_getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = express_getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = express_getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = express_getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = express_getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = express_getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = express_getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = express_getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = express_getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = express_getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = express_getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = express_getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = express_getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = express_getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = express_getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = express_getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = express_getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = express_getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = express_getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = express_getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = express_getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = express_getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = express_getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = express_getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = express_getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = express_getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = express_getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = express_getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = express_getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = express_getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = express_getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = express_getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = express_getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = express_getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = express_getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = express_getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = express_getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = express_getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = express_getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = express_getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = express_getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = express_getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = express_getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = express_getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = express_getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = express_getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = express_getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -dilatationsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -linesidestructure = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -linesidestructurepart = express_getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -plaintracksuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPERSTRUCTURE', INDETERMINATE) -superstructure = express_getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -trackstructure = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = express_getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -turnoutsuperstructure = express_getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +plaintracksuperstructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = express_getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = express_getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = express_getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = express_getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = express_getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = express_getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = express_getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = express_getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = express_getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = express_getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = express_getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = express_getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = express_getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = express_getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = express_getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = express_getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = express_getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = express_getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = express_getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = express_getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = express_getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = express_getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = express_getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = express_getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = express_getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = express_getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = express_getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = express_getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = express_getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = express_getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = express_getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = express_getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = express_getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = express_getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = express_getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = express_getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = express_getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = express_getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = express_getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = express_getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = express_getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = express_getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = express_getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = express_getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = express_getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = express_getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = express_getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = express_getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = express_getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = express_getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = express_getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = express_getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = express_getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = express_getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = express_getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = express_getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = express_getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = express_getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = express_getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = express_getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = express_getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = express_getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = express_getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = express_getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = express_getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = express_getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = express_getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = express_getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = express_getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = express_getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = express_getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = express_getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = express_getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = express_getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = express_getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = express_getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = express_getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = express_getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = express_getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = express_getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = express_getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = express_getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = express_getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = express_getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = express_getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = express_getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = express_getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = express_getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = express_getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = express_getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = express_getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = express_getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = express_getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = express_getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = express_getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = express_getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = express_getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = express_getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = express_getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = express_getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = express_getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = express_getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = express_getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = express_getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = express_getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = express_getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = express_getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = express_getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = express_getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = express_getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = express_getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = express_getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = express_getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = express_getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = express_getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = express_getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = express_getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = express_getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = express_getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = express_getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = express_getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = express_getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = express_getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = express_getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = express_getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = express_getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = express_getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = express_getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = express_getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = express_getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = express_getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = express_getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = express_getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = express_getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = express_getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = express_getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = express_getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = express_getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = express_getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = express_getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = express_getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = express_getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = express_getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = express_getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = express_getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = express_getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = express_getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = express_getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = express_getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = express_getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = express_getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = express_getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = express_getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = express_getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = express_getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = express_getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = express_getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = express_getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = express_getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = express_getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = express_getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = express_getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = express_getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = express_getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = express_getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = express_getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = express_getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = express_getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = express_getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = express_getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = express_getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = express_getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = express_getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = express_getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = express_getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = express_getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = express_getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = express_getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = express_getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = express_getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = express_getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = express_getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = express_getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = express_getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = express_getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = express_getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = express_getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = express_getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = express_getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = express_getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = express_getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = express_getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = express_getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = express_getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = express_getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = express_getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = express_getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = express_getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = express_getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = express_getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = express_getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = express_getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = express_getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = express_getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = express_getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = express_getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = express_getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = express_getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = express_getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = express_getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = express_getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = express_getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = express_getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = express_getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = express_getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = express_getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = express_getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = express_getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = express_getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = express_getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = express_getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = express_getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = express_getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = express_getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = express_getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = express_getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = express_getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = express_getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = express_getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = express_getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = express_getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = express_getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = express_getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = express_getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = express_getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = express_getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = express_getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = express_getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = express_getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = express_getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = express_getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = express_getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = express_getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = express_getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = express_getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = express_getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = express_getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = express_getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = express_getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = express_getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = express_getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = express_getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = express_getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = express_getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = express_getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = express_getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = express_getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = express_getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = express_getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = express_getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = express_getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = express_getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = express_getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = express_getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = express_getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = express_getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = express_getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = express_getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = express_getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = express_getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = express_getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = express_getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = express_getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = express_getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = express_getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = express_getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = express_getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = express_getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = express_getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = express_getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = express_getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = express_getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = express_getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = express_getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = express_getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = express_getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = express_getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = express_getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = express_getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = express_getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = express_getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = express_getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = express_getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = express_getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = express_getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = express_getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = express_getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = express_getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = express_getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = express_getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = express_getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = express_getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = express_getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = express_getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = express_getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = express_getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = express_getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = express_getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = express_getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = express_getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = express_getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = express_getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = express_getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = express_getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = express_getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = express_getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = express_getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = express_getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = express_getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = express_getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = express_getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = express_getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = express_getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = express_getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = express_getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = express_getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = express_getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = express_getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = express_getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = express_getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = express_getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = express_getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = express_getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = express_getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = express_getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = express_getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = express_getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = express_getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = express_getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = express_getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = express_getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = express_getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = express_getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = express_getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = express_getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = express_getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = express_getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = express_getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = express_getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = express_getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = express_getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = express_getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = express_getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = express_getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = express_getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = express_getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = express_getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = express_getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = express_getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = express_getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = express_getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = express_getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = express_getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = express_getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = express_getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = express_getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = express_getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = express_getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = express_getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = express_getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = express_getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = express_getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = express_getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = express_getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = express_getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = express_getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = express_getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = express_getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = express_getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = express_getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = express_getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = express_getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = express_getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = express_getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = express_getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = express_getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = express_getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = express_getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = express_getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = express_getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = express_getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = express_getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = express_getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = express_getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = express_getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = express_getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = express_getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = express_getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = express_getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = express_getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = express_getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = express_getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = express_getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = express_getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = express_getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = express_getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = express_getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = express_getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = express_getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = express_getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = express_getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = express_getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = express_getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = express_getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = express_getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = express_getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = express_getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = express_getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = express_getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = express_getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = express_getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = express_getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = express_getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = express_getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = express_getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = express_getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = express_getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = express_getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = express_getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = express_getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = express_getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = express_getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = express_getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = express_getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = express_getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = express_getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = express_getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = express_getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = express_getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = express_getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = express_getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = express_getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = express_getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = express_getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = express_getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = express_getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = express_getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = express_getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = express_getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = express_getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = express_getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = express_getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = express_getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = express_getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = express_getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = express_getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = express_getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = express_getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = express_getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = express_getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = express_getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = express_getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = express_getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = express_getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = express_getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = express_getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = express_getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = express_getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = express_getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = express_getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = express_getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = express_getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = express_getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = express_getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = express_getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = express_getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = express_getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = express_getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = express_getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = express_getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = express_getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_TC1', *args, **kwargs) From 3983bfa46748f5042c5f232050bc41dd91e0b5c9 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 23 Jan 2026 14:35:54 +0100 Subject: [PATCH 047/171] Don't crash on passing indeterminate to instance expecting aggregates #7529 --- src/ifcwrap/utils/type_conversion.i | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ifcwrap/utils/type_conversion.i b/src/ifcwrap/utils/type_conversion.i index 292a2e0c11..3eacf55fac 100644 --- a/src/ifcwrap/utils/type_conversion.i +++ b/src/ifcwrap/utils/type_conversion.i @@ -31,6 +31,7 @@ bool check_aggregate_of_type(PyObject* aggregate, void* type_obj) { if (!PySequence_Check(aggregate)) return false; + if (PySequence_Size(aggregate) == -1) return false; for(Py_ssize_t i = 0; i < PySequence_Size(aggregate); ++i) { PyObject* element = PySequence_GetItem(aggregate, i); // This is equivalent to the PyFloat_CheckExact macro. This means @@ -46,6 +47,7 @@ bool check_aggregate_of_aggregate_of_type(PyObject* aggregate, void* type_obj) { if (!PySequence_Check(aggregate)) return false; + if (PySequence_Size(aggregate) == -1) return false; for(Py_ssize_t i = 0; i < PySequence_Size(aggregate); ++i) { PyObject* element = PySequence_GetItem(aggregate, i); bool b = check_aggregate_of_type(element, type_obj); From a86c333a99a667cd657c96a116fa3b5bee055ed6 Mon Sep 17 00:00:00 2001 From: Esteban DUGUEPEROUX Date: Fri, 12 Dec 2025 22:44:40 +0100 Subject: [PATCH 048/171] make: Try to build and run others examples --- .github/workflows/ci.yml | 11 ++ cmake/CMakeLists.txt | 1 + src/examples/CMakeLists.txt | 102 ++++++++++++++++++ src/examples/arbitrary_open_profile_def.cpp | 31 +++--- src/examples/composite_profile_def.cpp | 13 +-- src/examples/csg_primitive.cpp | 19 ++-- src/examples/ellipse_pies.cpp | 42 ++++---- src/examples/faces.cpp | 23 ++-- src/examples/ifc_curve_rebar.cpp | 22 ++-- src/examples/profiles.cpp | 81 +++++++------- src/examples/triangulated_faceset.cpp | 20 ++-- src/ifcgeom/Serialization/CMakeLists.txt | 2 +- .../Serialization/schema/CMakeLists.txt | 2 +- 13 files changed, 246 insertions(+), 123 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2392ecb2e..0929efbfc4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -215,11 +215,22 @@ jobs: -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache cmake --build . + # To display executed command + set -x + ./arbitrary_open_profile_def + ./composite_profile_def + ./csg_primitive + ./ellipse_pies + ./faces + ./ifc_curve_rebar + ./profiles ./IfcParseExamples "../IfcParseExamples_test.ifc" ./IfcOpenHouse ./IfcAdvancedHouse ./IfcAlignment ./IfcSimplifiedAlignment + ./triangulated_faceset + set +x - name: Test ifcopenshell-python run: | diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 9e88026ac7..0fb45e42eb 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -218,6 +218,7 @@ if(BUILD_IFCGEOM AND WITH_OPENCASCADE) find_package(OpenCASCADE REQUIRED) add_definitions(-DIFOPSH_WITH_OPENCASCADE) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_OPENCASCADE) + # set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES}) list(APPEND GEOMETRY_KERNELS opencascade) endif() diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index 3a5c0187b5..4eda006ecc 100644 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -35,7 +35,107 @@ else() include_directories("${CMAKE_SOURCE_DIR}/../src") endif() +if(SCHEMA_VERSIONS MATCHES "4") + # arbitrary_open_profile_def + add_executable(arbitrary_open_profile_def arbitrary_open_profile_def.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(arbitrary_open_profile_def IfcOpenShell::IfcParse) + else() + target_include_directories(arbitrary_open_profile_def PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(arbitrary_open_profile_def IfcParse) + set_target_properties(arbitrary_open_profile_def PROPERTIES FOLDER Examples) + endif() + install(TARGETS arbitrary_open_profile_def) + + # triangulated_faceset + add_executable(triangulated_faceset triangulated_faceset.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(triangulated_faceset IfcOpenShell::IfcParse) + else() + target_include_directories(triangulated_faceset PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(triangulated_faceset IfcParse) + set_target_properties(triangulated_faceset PROPERTIES FOLDER Examples) + endif() + install(TARGETS triangulated_faceset) + +endif() + if(SCHEMA_VERSIONS MATCHES "2x3") + # composite_profile_def.cpp + add_executable(composite_profile_def composite_profile_def.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(composite_profile_def IfcOpenShell::IfcParse) + else() + target_include_directories(composite_profile_def PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(composite_profile_def IfcParse) + set_target_properties(composite_profile_def PROPERTIES FOLDER Examples) + endif() + install(TARGETS composite_profile_def) + + # csg_primitive + add_executable(csg_primitive csg_primitive.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(csg_primitive IfcOpenShell::IfcParse) + else() + target_include_directories(csg_primitive PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(csg_primitive IfcParse) + set_target_properties(csg_primitive PROPERTIES FOLDER Examples) + endif() + install(TARGETS csg_primitive) + + # ellipse_pies + add_executable(ellipse_pies ellipse_pies.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(ellipse_pies IfcOpenShell::IfcParse) + else() + target_include_directories(ellipse_pies PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(ellipse_pies IfcParse) + set_target_properties(ellipse_pies PROPERTIES FOLDER Examples) + endif() + install(TARGETS ellipse_pies) + + # faces + add_executable(faces faces.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(faces IfcOpenShell::IfcParse) + else() + target_include_directories(faces PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(faces IfcParse) + set_target_properties(faces PROPERTIES FOLDER Examples) + endif() + install(TARGETS faces) + + # ifc_curve_rebar + add_executable(ifc_curve_rebar ifc_curve_rebar.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(ifc_curve_rebar IfcOpenShell::IfcParse) + else() + target_include_directories(ifc_curve_rebar PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(ifc_curve_rebar IfcParse) + set_target_properties(ifc_curve_rebar PROPERTIES FOLDER Examples) + endif() + install(TARGETS ifc_curve_rebar) + + # profiles + add_executable(profiles profiles.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(profiles IfcOpenShell::IfcParse) + else() + target_include_directories(profiles PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(profiles IfcParse) + set_target_properties(profiles PROPERTIES FOLDER Examples) + endif() + install(TARGETS profiles) + + # IfcParseExamples add_executable(IfcParseExamples IfcParseExamples.cpp) if(STANDALONE_PROJECT) @@ -48,6 +148,7 @@ if(SCHEMA_VERSIONS MATCHES "2x3") install(TARGETS IfcParseExamples) if(WITH_OPENCASCADE) + # IfcOpenHouse and IfcAdvancedHouse add_executable(IfcOpenHouse IfcOpenHouse.cpp) add_executable(IfcAdvancedHouse IfcAdvancedHouse.cpp) add_library(IfcHouseInterface INTERFACE) @@ -66,6 +167,7 @@ if(SCHEMA_VERSIONS MATCHES "2x3") endif() if(SCHEMA_VERSIONS MATCHES "4x3_add2") + # IfcAlignment and IfcSimplifiedAlignment add_executable(IfcAlignment IfcAlignment.cpp) add_executable(IfcSimplifiedAlignment IfcSimplifiedAlignment.cpp) add_library(IfcAlignmentInterface INTERFACE) diff --git a/src/examples/arbitrary_open_profile_def.cpp b/src/examples/arbitrary_open_profile_def.cpp index 45495736d5..5393af53ae 100644 --- a/src/examples/arbitrary_open_profile_def.cpp +++ b/src/examples/arbitrary_open_profile_def.cpp @@ -28,16 +28,16 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc4 +#include "ifcparse/Ifc4.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; boost::none_t const null = boost::none; static int i = 0; -void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresentationItem* item, const std::string& s) { +void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresentationItem* item, const std::string& s) { IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy( guid(), 0, S("product"), null, null, 0, 0, null, null); file.addBuildingProduct(product); @@ -50,7 +50,7 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta items->push(item); if (s == "GeometricSet") { - IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->generalize()); + IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->as()); file.addEntity(set); items = IfcSchema::IfcRepresentationItem::list::ptr(new IfcSchema::IfcRepresentationItem::list()); items->push(set); @@ -67,7 +67,7 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta product->setRepresentation(shape); } -void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { +void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { IfcSchema::IfcSurfaceOfLinearExtrusion* extrusion = new IfcSchema::IfcSurfaceOfLinearExtrusion(profile, file.addPlacement3d(), file.addTriplet(0, 0, 1), 100.); file.addEntity(extrusion); @@ -80,7 +80,7 @@ void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfil create_product_from_item(file, revolution, "GeometricSet"); } -void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { +void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { IfcSchema::IfcExtrudedAreaSolid* extrusion = new IfcSchema::IfcExtrudedAreaSolid(profile, file.addPlacement3d(), file.addTriplet(0, 0, 1), 100.); file.addEntity(extrusion); @@ -96,7 +96,7 @@ void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileD create_product_from_item(file, revolution2, "SweptSolid"); } -void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedCurve* curve) { +void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedCurve* curve) { IfcSchema::IfcArbitraryOpenProfileDef* open = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, null, curve); IfcSchema::IfcCenterLineProfileDef* center_line = new IfcSchema::IfcCenterLineProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, curve, 10.); file.addEntity(open); @@ -108,8 +108,8 @@ void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedC int main(int argc, char** argv) { const char filename[] = "IfcArbitraryOpenProfileDef.ifc"; - IfcHierarchyHelper file; - file.header().file_name().name(filename); + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); double coords1[] = {-50.0, 0.0}; double coords2[] = { 50.0, 0.0}; @@ -124,17 +124,18 @@ int main(int argc, char** argv) { IfcSchema::IfcEllipse* ellipse = new IfcSchema::IfcEllipse(file.addPlacement2d(), 50., 25.); file.addEntity(ellipse); - IfcEntityList::ptr trim1(new IfcEntityList); - IfcEntityList::ptr trim2(new IfcEntityList); + aggregate_of_instance::ptr trim1(new aggregate_of_instance); + aggregate_of_instance::ptr trim2(new aggregate_of_instance); trim1->push(new IfcSchema::IfcParameterValue( 0.)); trim2->push(new IfcSchema::IfcParameterValue(180.)); - IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1, trim2, true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1->as(), trim2->as(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); file.addEntity(trim); create_products_from_curve(file, trim); - file.getSingle()->setName("IfcArbitraryOpenProfileDef"); + using namespace std::string_literals; + file.getSingle()->setName("IfcArbitraryOpenProfileDef"s); std::ofstream f(filename); f << file; -} +} \ No newline at end of file diff --git a/src/examples/composite_profile_def.cpp b/src/examples/composite_profile_def.cpp index 5ff41a3b13..3a7281be43 100644 --- a/src/examples/composite_profile_def.cpp +++ b/src/examples/composite_profile_def.cpp @@ -27,9 +27,9 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; @@ -37,8 +37,8 @@ boost::none_t const null = boost::none; int main(int argc, char** argv) { const char filename[] = "IfcCompositeProfileDef.ifc"; - IfcHierarchyHelper file; - file.header().file_name().name(filename); + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); double coords1[] = {100.0, 0.0}; double coords2[] = {200.0, 0.0}; @@ -112,7 +112,8 @@ int main(int argc, char** argv) { product->setRepresentation(shape); - file.getSingle()->setName("IfcCompositeProfileDef"); + using namespace std::string_literals; + file.getSingle()->setName("IfcCompositeProfileDef"s); std::ofstream f(filename); f << file; diff --git a/src/examples/csg_primitive.cpp b/src/examples/csg_primitive.cpp index 190236ed6b..b157281402 100644 --- a/src/examples/csg_primitive.cpp +++ b/src/examples/csg_primitive.cpp @@ -27,9 +27,9 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; @@ -101,7 +101,7 @@ public: return operate(OP_INTERSECT, p); } - IfcSchema::IfcRepresentationItem* serialize(IfcHierarchyHelper& file) const { + IfcSchema::IfcRepresentationItem* serialize(IfcHierarchyHelper& file) const { IfcSchema::IfcRepresentationItem* my; if (op == OP_TERMINAL) { IfcSchema::IfcAxis2Placement3D* place = file.addPlacement3d(x,y,z,zx,zy,zz,xx,xy,xz); @@ -117,7 +117,7 @@ public: my = new IfcSchema::IfcRightCircularCone(place, b, a); } } else { - IfcSchema::IfcBooleanOperator::IfcBooleanOperator o; + IfcSchema::IfcBooleanOperator o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION; if (op == OP_ADD) { o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION; } else if (op == OP_SUBTRACT) { @@ -125,7 +125,7 @@ public: } else if (op == OP_INTERSECT) { o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION; } - my = new IfcSchema::IfcBooleanResult(o, left->serialize(file), right->serialize(file)); + my = new IfcSchema::IfcBooleanResult(o, left->serialize(file)->as(), right->serialize(file)->as()); } file.addEntity(my); return my; @@ -134,8 +134,8 @@ public: int main(int argc, char** argv) { const char filename[] = "IfcCsgPrimitive.ifc"; - IfcHierarchyHelper file; - file.header().file_name().name(filename); + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); IfcSchema::IfcRepresentationItem* csg1 = Node::Box(8000.,6000.,3000.).subtract( Node::Box(7600.,5600.,2800.).move(200.,200.,200.) @@ -186,7 +186,8 @@ int main(int argc, char** argv) { product->setRepresentation(shape); - file.getSingle()->setName("IfcCompositeProfileDef"); + using namespace std::string_literals; + file.getSingle()->setName("IfcCompositeProfileDef"s); std::ofstream f(filename); f << file; diff --git a/src/examples/ellipse_pies.cpp b/src/examples/ellipse_pies.cpp index 9994ca820d..8128c4377c 100644 --- a/src/examples/ellipse_pies.cpp +++ b/src/examples/ellipse_pies.cpp @@ -27,9 +27,9 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; @@ -44,7 +44,7 @@ typedef struct { static int i = 0; -void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference pref) { +void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, IfcSchema::IfcTrimmingPreference pref) { const double deg = 1. / 180. * 3.141592653; double flt1[] = {0. , 0. }; double flt2[] = {pie.r1 * cos(pie.t1*deg), pie.r2 * sin(pie.t1*deg)}; @@ -67,16 +67,16 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3 Ifc2x3::IfcEllipse* ellipse = new Ifc2x3::IfcEllipse(file.addPlacement2d(), pie.r1, pie.r2); file.addEntity(ellipse); - IfcEntityList::ptr trim1(new IfcEntityList); - IfcEntityList::ptr trim2(new IfcEntityList); - if (pref == Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) { + aggregate_of_instance::ptr trim1(new aggregate_of_instance); + aggregate_of_instance::ptr trim2(new aggregate_of_instance); + if (pref == IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) { trim1->push(new Ifc2x3::IfcParameterValue(pie.t1)); trim2->push(new Ifc2x3::IfcParameterValue(pie.t2)); } else { trim1->push(p2); trim2->push(p3); } - Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1, trim2, true, pref); + Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1->as(), trim2->as(), true, pref); file.addEntity(trim); Ifc2x3::IfcCompositeCurveSegment::list::ptr segments(new Ifc2x3::IfcCompositeCurveSegment::list()); @@ -124,25 +124,25 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3 int main(int argc, char** argv) { const std::string filename = "ellipse_pies.ifc"; - IfcHierarchyHelper file; + IfcHierarchyHelper file; { EllipsePie pie = {80., 50., 0., 150.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {80, 50., 30., 300.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {80, 50., 300., 30.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {50., 80., 0., 150.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {50, 80., 30., 300.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {50, 80., 300., 30.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} std::ofstream f(filename.c_str()); f << file; } diff --git a/src/examples/faces.cpp b/src/examples/faces.cpp index 985b23dd8e..f7e3858c58 100644 --- a/src/examples/faces.cpp +++ b/src/examples/faces.cpp @@ -22,18 +22,19 @@ * Example that generates various forms of IfcFace * * * ********************************************************************************/ +#include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; -boost::none_t const null = (static_cast(0)); +boost::none_t const null = boost::none; static int x = 0; -void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const std::string& name) { +void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const std::string& name) { IfcSchema::IfcFace::list::ptr faces(new IfcSchema::IfcFace::list); faces->push(face); IfcSchema::IfcOpenShell* shell = new IfcSchema::IfcOpenShell(faces); @@ -57,14 +58,14 @@ void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const s file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items); reps->push(rep); - IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps); + IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, reps); file.addEntity(shape); product->setRepresentation(shape); } int main(int argc, char** argv) { - IfcHierarchyHelper file; + IfcHierarchyHelper file; { IfcSchema::IfcCartesianPoint::list::ptr points (new IfcSchema::IfcCartesianPoint::list); points->push(file.addTriplet(-400, -400, 0)); @@ -192,7 +193,7 @@ int main(int argc, char** argv) { IfcSchema::IfcCartesianPoint::list::ptr trim2(new IfcSchema::IfcCartesianPoint::list); trim1->push(point1); trim2->push(point2); - IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->generalize(), trim2->generalize(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN); + IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->generalize()->as(), trim2->generalize()->as(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN); IfcSchema::IfcArbitraryOpenProfileDef* profile = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, boost::none, trimmed_curve); IfcSchema::IfcAxis1Placement* place = new IfcSchema::IfcAxis1Placement(file.addTriplet(0., 0., 0.), file.addTriplet(1., 0., 0.)); IfcSchema::IfcSurfaceOfRevolution* surface = new IfcSchema::IfcSurfaceOfRevolution(profile, file.addPlacement3d(), place); @@ -200,8 +201,8 @@ int main(int argc, char** argv) { IfcSchema::IfcFace* face = new IfcSchema::IfcFaceSurface(bounds, surface, true); create_testcase(file, face, "face surface"); } - const std::string filename = "faces.ifc"; - file.header().file_name().name(filename); - std::ofstream f(filename.c_str()); + const char filename[] = "faces.ifc"; + file.header().file_name()->setname(filename); + std::ofstream f(filename); f << file; } \ No newline at end of file diff --git a/src/examples/ifc_curve_rebar.cpp b/src/examples/ifc_curve_rebar.cpp index 2ba269e015..4e674d5e95 100644 --- a/src/examples/ifc_curve_rebar.cpp +++ b/src/examples/ifc_curve_rebar.cpp @@ -27,16 +27,15 @@ #include #include -#include "ifcparse\Ifc2x3.h" -#include "ifcparse\IfcUtil.h" -#include "ifcparse\IfcHierarchyHelper.h" -#include "ifcgeom\IfcGeom.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; boost::none_t const null = boost::none; -void create_curve_rebar(IfcHierarchyHelper& file) +void create_curve_rebar(IfcHierarchyHelper& file) { int dia = 24; int R = 3 * dia; @@ -83,15 +82,16 @@ void create_curve_rebar(IfcHierarchyHelper& file) IfcSchema::IfcCircle* circle = new IfcSchema::IfcCircle(axis1, R); file.addEntity(circle); - IfcEntityList::ptr trim1(new IfcEntityList); - IfcEntityList::ptr trim2(new IfcEntityList); - + aggregate_of_instance::ptr trim1(new aggregate_of_instance); + aggregate_of_instance::ptr trim2(new aggregate_of_instance); + trim1->push(new IfcSchema::IfcParameterValue(180)); trim1->push(p2); trim2->push(new IfcSchema::IfcParameterValue(270)); trim2->push(p4); - IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1, trim2, false, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + + IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->as(), trim2->as(), false, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); file.addEntity(trimmed_curve); IfcSchema::IfcCompositeCurveSegment* segment2 = new IfcSchema::IfcCompositeCurveSegment(IfcSchema::IfcTransitionCode::IfcTransitionCode_CONTSAMEGRADIENT, false, trimmed_curve); @@ -133,8 +133,8 @@ void create_curve_rebar(IfcHierarchyHelper& file) int main() { - IfcHierarchyHelper file; - file.header().file_name().name("ifc_curve_rebar.ifc"); + IfcHierarchyHelper file; + file.header().file_name()->setname("ifc_curve_rebar.ifc"); create_curve_rebar(file); std::ofstream f("ifc_curve_rebar.ifc"); f << file; diff --git a/src/examples/profiles.cpp b/src/examples/profiles.cpp index d171745dc7..78cc67f13f 100644 --- a/src/examples/profiles.cpp +++ b/src/examples/profiles.cpp @@ -27,21 +27,21 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; -typedef IfcWrite::IfcGuidHelper guid; -boost::none_t const null = (static_cast(0)); +typedef IfcParse::IfcGlobalId guid; +boost::none_t const null = boost::none; void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { IfcSchema::IfcProfileDef* profile = *profiles->begin(); - const std::string profile_type = IfcSchema::Type::ToString(profile->type()); + const std::string& profile_type = profile->declaration().name(); const std::string filename = profile_type + ".ifc"; - IfcHierarchyHelper file; - file.filename(filename); + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); int i = 0; for (IfcSchema::IfcProfileDef::list::it it = profiles->begin(); it != profiles->end(); ++it, ++i) { @@ -54,7 +54,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { product->setObjectPlacement(file.addLocalPlacement(0, 100. * i)); - if (profile->is(IfcSchema::Type::IfcParameterizedProfileDef)) { + if (profile->declaration().is(IfcSchema::IfcParameterizedProfileDef::Class())) { ((IfcSchema::IfcParameterizedProfileDef*) profile)->setPosition(file.addPlacement2d()); } @@ -72,7 +72,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { file.getSingle(), S("Body"), S("SweptSolid"), items); reps->push(rep); - IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps); + IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(null, null, reps); file.addEntity(rep); file.addEntity(shape); @@ -84,122 +84,123 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { } int main(int argc, char** argv) { + IfcSchema::get_schema(); // Ensure schema is initialized { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null)); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, null, null)); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, 4.0, null)); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 1.0, 3.0, 6.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null, null, null)); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, 2.0, null, null, null)); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, 2.0, 2.0, null)); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 3.0, 2.0, 1.0, 2.0, 2.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcZShapeProfileDef( + profiles->push(new IfcSchema::IfcZShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null)); - profiles->push(new Ifc2x3::IfcZShapeProfileDef( + profiles->push(new IfcSchema::IfcZShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcEllipseProfileDef( + profiles->push(new IfcSchema::IfcEllipseProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 15.0)); - profiles->push(new Ifc2x3::IfcEllipseProfileDef( + profiles->push(new IfcSchema::IfcEllipseProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 15.0, 25.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcIShapeProfileDef( + profiles->push(new IfcSchema::IfcIShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 50.0, 5.0, 5.0, null)); - profiles->push(new Ifc2x3::IfcIShapeProfileDef( + profiles->push(new IfcSchema::IfcIShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 50.0, 5.0, 5.0, 2.0)); - profiles->push(new Ifc2x3::IfcAsymmetricIShapeProfileDef( + profiles->push(new IfcSchema::IfcAsymmetricIShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 50.0, 5.0, 5.0, 2.0, 20.0, 10.0, 5.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, null, null, null, null, null)); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 2.0, 2.0, null, null, null)); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, null, null, 2.0, null, null)); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 1.0, 2.0, 2.0, null, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcCShapeProfileDef( + profiles->push(new IfcSchema::IfcCShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 10.0, null, null)); - profiles->push(new Ifc2x3::IfcCShapeProfileDef( + profiles->push(new IfcSchema::IfcCShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 10.0, 2.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcCircleProfileDef( + profiles->push(new IfcSchema::IfcCircleProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0)); - profiles->push(new Ifc2x3::IfcCircleHollowProfileDef( + profiles->push(new IfcSchema::IfcCircleHollowProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 5.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcRectangleProfileDef( + profiles->push(new IfcSchema::IfcRectangleProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0)); - profiles->push(new Ifc2x3::IfcRoundedRectangleProfileDef( + profiles->push(new IfcSchema::IfcRoundedRectangleProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0)); - profiles->push(new Ifc2x3::IfcRectangleHollowProfileDef( + profiles->push(new IfcSchema::IfcRectangleHollowProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, null, null)); - profiles->push(new Ifc2x3::IfcRectangleHollowProfileDef( + profiles->push(new IfcSchema::IfcRectangleHollowProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 2.0, 4.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcTrapeziumProfileDef( + profiles->push(new IfcSchema::IfcTrapeziumProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 30.0, 25.0, 0.0)); - profiles->push(new Ifc2x3::IfcTrapeziumProfileDef( + profiles->push(new IfcSchema::IfcTrapeziumProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 60.0, 25.0, -20.0)); - profiles->push(new Ifc2x3::IfcTrapeziumProfileDef( + profiles->push(new IfcSchema::IfcTrapeziumProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 10.0, 25.0, 30.0)); create_testcase_for(profiles); } diff --git a/src/examples/triangulated_faceset.cpp b/src/examples/triangulated_faceset.cpp index acf56d60c1..f54ae4f3d0 100644 --- a/src/examples/triangulated_faceset.cpp +++ b/src/examples/triangulated_faceset.cpp @@ -23,15 +23,19 @@ * * ********************************************************************************/ -#include "../ifcparse/Ifc4.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#include +#include +#include + +#define IfcSchema Ifc4 +#include "ifcparse/Ifc4.h" +#include "ifcparse/IfcHierarchyHelper.h" #include "suzanne_geometry.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; -boost::none_t const null = (static_cast(0)); +boost::none_t const null = boost::none; template std::vector< std::vector > create_vector_from_array(const T* arr, unsigned size) { @@ -50,7 +54,7 @@ std::vector< std::vector > create_vector_from_array(const T* arr, unsigned si } int main(int argc, char** argv) { - IfcHierarchyHelper file; + IfcHierarchyHelper file; IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy( guid(), 0, S("Blender's Suzanne"), null, null, 0, 0, null, null); @@ -73,13 +77,13 @@ int main(int argc, char** argv) { file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items); reps->push(rep); - IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps); + IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, reps); file.addEntity(shape); product->setRepresentation(shape); const std::string filename = "tesselated_faceset.ifc"; - file.header().file_name().name(filename); - std::ofstream f(filename.c_str()); + file.header().file_name()->setname(filename); + std::ofstream f(filename); f << file; } diff --git a/src/ifcgeom/Serialization/CMakeLists.txt b/src/ifcgeom/Serialization/CMakeLists.txt index 4463cabcc9..0c49136101 100644 --- a/src/ifcgeom/Serialization/CMakeLists.txt +++ b/src/ifcgeom/Serialization/CMakeLists.txt @@ -1,6 +1,6 @@ add_subdirectory(schema) -add_library(geometry_serializer STATIC Serialization.cpp) +add_library(geometry_serializer Serialization.cpp) file(GLOB IFCGEOM_SERIALIZATION_H_FILE *.h) set_target_properties( diff --git a/src/ifcgeom/Serialization/schema/CMakeLists.txt b/src/ifcgeom/Serialization/schema/CMakeLists.txt index b6daf97cd9..583c177634 100644 --- a/src/ifcgeom/Serialization/schema/CMakeLists.txt +++ b/src/ifcgeom/Serialization/schema/CMakeLists.txt @@ -1,5 +1,5 @@ foreach(schema ${SCHEMA_VERSIONS}) - add_library(geometry_serializer_ifc${schema} STATIC Serialization.cpp) + add_library(geometry_serializer_ifc${schema} OBJECT Serialization.cpp) target_link_libraries(geometry_serializer_ifc${schema} ${OpenCASCADE_LIBRARIES}) set_target_properties( geometry_serializer_ifc${schema} From 0577dbe86585f4efcbdbfb4b33654b54efc4063c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Jan 2026 22:46:21 +0000 Subject: [PATCH 049/171] Bump black from 25.12 to 26.1.0 Bumps [black](https://github.com/psf/black) from 25.12 to 26.1.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/25.12.0...26.1.0) --- updated-dependencies: - dependency-name: black dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0c7914f541..fec403b497 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "IfcOpenShell" version = "0.0.0" dependencies = [ - "black==25.12", + "black==26.1.0", "ruff==0.14.13", "poethepoet", "gersemi==0.25.1", From 7636ff3fdbccebd57a5438fdfecc3a2763b7396d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Jan 2026 02:46:15 +0000 Subject: [PATCH 050/171] Bump ruff from 0.14.13 to 0.14.14 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.13 to 0.14.14. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.14.13...0.14.14) --- updated-dependencies: - dependency-name: ruff dependency-version: 0.14.14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fec403b497..b932db42a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "IfcOpenShell" version = "0.0.0" dependencies = [ "black==26.1.0", - "ruff==0.14.13", + "ruff==0.14.14", "poethepoet", "gersemi==0.25.1", ] From cf52607528042bd9b36a49227846dd3c6c37d84b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 24 Jan 2026 14:19:57 +1100 Subject: [PATCH 051/171] Fix #7591. Save pset as template now considers all psets in the file, not just the active one. --- src/bonsai/bonsai/bim/module/pset/operator.py | 2 +- src/bonsai/bonsai/tool/pset_template.py | 30 +++++++----- src/bonsai/test/tool/test_pset_template.py | 48 +++++++++++++++++++ 3 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 src/bonsai/test/tool/test_pset_template.py diff --git a/src/bonsai/bonsai/bim/module/pset/operator.py b/src/bonsai/bonsai/bim/module/pset/operator.py index cbd7a7fe77..4e063b4ada 100644 --- a/src/bonsai/bonsai/bim/module/pset/operator.py +++ b/src/bonsai/bonsai/bim/module/pset/operator.py @@ -569,7 +569,7 @@ class SavePsetAsTemplate(bpy.types.Operator, tool.PsetTemplate.PsetTemplateOpera template_file = IfcStore.pset_template_file assert template_file - tool.PsetTemplate.add_pset_as_template(pset, template_file) + tool.PsetTemplate.add_pset_as_template(pset.Name, template_file) template_file.write(IfcStore.pset_template_path) bonsai.bim.handler.refresh_ui_data() diff --git a/src/bonsai/bonsai/tool/pset_template.py b/src/bonsai/bonsai/tool/pset_template.py index 3da6dad2e5..66a65e820c 100644 --- a/src/bonsai/bonsai/tool/pset_template.py +++ b/src/bonsai/bonsai/tool/pset_template.py @@ -61,19 +61,23 @@ class PsetTemplate(bonsai.core.tool.PsetTemplate): tool.Ifc.Operator._execute(self, context) @classmethod - def add_pset_as_template( - cls, pset: ifcopenshell.entity_instance, template_file: ifcopenshell.file - ) -> ifcopenshell.entity_instance: - # TODO: add tests. - pset_template = ifcopenshell.api.pset_template.add_pset_template(template_file, pset.Name) - for property in pset.HasProperties: - ifcopenshell.api.pset_template.add_prop_template( - template_file, - pset_template, - name=property.Name, - description=property.Description, - primary_measure_type=property.NominalValue.is_a(), - ) + def add_pset_as_template(cls, pset_name: str, template_file: ifcopenshell.file) -> ifcopenshell.entity_instance: + added_prop_names = set() + pset_template = ifcopenshell.api.pset_template.add_pset_template(template_file, pset_name) + for pset in tool.Ifc.get().by_type("IfcPropertySet"): + if pset.Name != pset_name: + continue + for prop in pset.HasProperties: + if prop.Name in added_prop_names: + continue + added_prop_names.add(prop.Name) + ifcopenshell.api.pset_template.add_prop_template( + template_file, + pset_template, + name=prop.Name, + description=prop.Description, + primary_measure_type=prop.NominalValue.is_a(), + ) return pset_template @classmethod diff --git a/src/bonsai/test/tool/test_pset_template.py b/src/bonsai/test/tool/test_pset_template.py new file mode 100644 index 0000000000..a104f8baff --- /dev/null +++ b/src/bonsai/test/tool/test_pset_template.py @@ -0,0 +1,48 @@ +# Bonsai - OpenBIM Blender Add-on +# Copyright (C) 2021 Dion Moult +# +# This file is part of Bonsai. +# +# Bonsai is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Bonsai 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Bonsai. If not, see . + +import bpy +import ifcopenshell +import ifcopenshell.api +import ifcopenshell.api.pset +import bonsai.core.tool +import bonsai.tool as tool +from bonsai.tool.pset_template import PsetTemplate as subject +from test.bim.bootstrap import NewFile + + +class TestImplementsTool(NewFile): + def test_run(self): + assert isinstance(subject(), bonsai.core.tool.PsetTemplate) + + +class TestAddPsetAsTemplate(NewFile): + def test_run(self): + ifc = ifcopenshell.file() + tool.Ifc.set(ifc) + element1 = ifc.createIfcWall() + element2 = ifc.createIfcWall() + pset = ifcopenshell.api.pset.add_pset(ifc, product=element1, name="Foo") + prop = ifcopenshell.api.pset.edit_pset(ifc, pset=pset, properties={"Foo": "a"}) + pset = ifcopenshell.api.pset.add_pset(ifc, product=element2, name="Foo") + prop = ifcopenshell.api.pset.edit_pset(ifc, pset=pset, properties={"Bar": "b"}) + library = ifcopenshell.file() + assert (pset_template := subject.add_pset_as_template("Foo", library)) + assert pset_template.is_a("IfcPropertySetTemplate") + assert len(templates := pset_template.HasPropertyTemplates) == 2 + assert set(t.Name for t in templates) == {"Foo", "Bar"} From 8f3715c0f14dd2a5b49020c6e7ed1319074fc608 Mon Sep 17 00:00:00 2001 From: Esteban DUGUEPEROUX Date: Fri, 23 Jan 2026 20:41:40 +0100 Subject: [PATCH 052/171] review: Take into account remarks --- .github/workflows/ci.yml | 36 +++-- cmake/CMakeLists.txt | 1 - src/examples/CMakeLists.txt | 162 +++----------------- src/examples/IfcAlignment.cpp | 2 +- src/examples/IfcSimplifiedAlignment.cpp | 2 +- src/examples/arbitrary_open_profile_def.cpp | 4 +- src/examples/composite_profile_def.cpp | 4 +- src/examples/csg_primitive.cpp | 4 +- src/examples/ifc_curve_rebar.cpp | 6 +- src/examples/triangulated_faceset.cpp | 2 +- 10 files changed, 59 insertions(+), 164 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0929efbfc4..6a2fe8ce5d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -209,28 +209,36 @@ jobs: - name: Build standalone examples to test cmake package run: | + set -x cd src/examples mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache cmake --build . - # To display executed command - set -x - ./arbitrary_open_profile_def - ./composite_profile_def - ./csg_primitive - ./ellipse_pies - ./faces - ./ifc_curve_rebar + ./arbitrary_open_profile_def && test -f arbitrary_open_profile_def.ifc + ./composite_profile_def && test -f composite_profile_def.ifc + ./csg_primitive && test -f csg_primitive.ifc + ./ellipse_pies && test -f ellipse_pies.ifc + ./faces && test -f faces.ifc + ./ifc_curve_rebar && test -f ifc_curve_rebar.ifc ./profiles + test -f IfcUShapeProfileDef.ifc + test -f IfcTShapeProfileDef.ifc + test -f IfcZShapeProfileDef.ifc + test -f IfcEllipseProfileDef.ifc + test -f IfcIShapeProfileDef.ifc + test -f IfcLShapeProfileDef.ifc + test -f IfcCShapeProfileDef.ifc + test -f IfcCircleProfileDef.ifc + test -f IfcRectangleProfileDef.ifc + test -f IfcTrapeziumProfileDef.ifc ./IfcParseExamples "../IfcParseExamples_test.ifc" - ./IfcOpenHouse - ./IfcAdvancedHouse - ./IfcAlignment - ./IfcSimplifiedAlignment - ./triangulated_faceset - set +x + ./IfcOpenHouse && test -f IfcOpenHouse.ifc + ./IfcAdvancedHouse && test -f IfcAdvancedHouse.ifc + ./IfcAlignment && test -f IfcAlignment.ifc + ./IfcSimplifiedAlignment && test -f IfcSimplifiedAlignment.ifc + ./triangulated_faceset && test -f triangulated_faceset.ifc - name: Test ifcopenshell-python run: | diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0fb45e42eb..9e88026ac7 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -218,7 +218,6 @@ if(BUILD_IFCGEOM AND WITH_OPENCASCADE) find_package(OpenCASCADE REQUIRED) add_definitions(-DIFOPSH_WITH_OPENCASCADE) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_OPENCASCADE) - # set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES}) list(APPEND GEOMETRY_KERNELS opencascade) endif() diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index 4eda006ecc..79a2399821 100644 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -35,153 +35,41 @@ else() include_directories("${CMAKE_SOURCE_DIR}/../src") endif() -if(SCHEMA_VERSIONS MATCHES "4") - # arbitrary_open_profile_def - add_executable(arbitrary_open_profile_def arbitrary_open_profile_def.cpp) +macro(build_example exe_name) + set (additional_targets ${ARGN}) + add_executable(${exe_name} ${exe_name}.cpp) if(STANDALONE_PROJECT) - target_link_libraries(arbitrary_open_profile_def IfcOpenShell::IfcParse) + target_link_libraries(${exe_name} IfcOpenShell::IfcParse $<$:IfcOpenShell::${additional_targets}>) else() - target_include_directories(arbitrary_open_profile_def PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(arbitrary_open_profile_def IfcParse) - set_target_properties(arbitrary_open_profile_def PROPERTIES FOLDER Examples) + target_include_directories(${exe_name} PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(${exe_name} IfcParse ${additional_targets}) + set_target_properties(${exe_name} PROPERTIES FOLDER Examples) endif() - install(TARGETS arbitrary_open_profile_def) - - # triangulated_faceset - add_executable(triangulated_faceset triangulated_faceset.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(triangulated_faceset IfcOpenShell::IfcParse) - else() - target_include_directories(triangulated_faceset PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(triangulated_faceset IfcParse) - set_target_properties(triangulated_faceset PROPERTIES FOLDER Examples) - endif() - install(TARGETS triangulated_faceset) + install(TARGETS ${exe_name}) +endmacro() +if("4" IN_LIST SCHEMA_VERSIONS) + build_example(arbitrary_open_profile_def) + build_example(triangulated_faceset) endif() -if(SCHEMA_VERSIONS MATCHES "2x3") - # composite_profile_def.cpp - add_executable(composite_profile_def composite_profile_def.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(composite_profile_def IfcOpenShell::IfcParse) - else() - target_include_directories(composite_profile_def PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(composite_profile_def IfcParse) - set_target_properties(composite_profile_def PROPERTIES FOLDER Examples) - endif() - install(TARGETS composite_profile_def) - - # csg_primitive - add_executable(csg_primitive csg_primitive.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(csg_primitive IfcOpenShell::IfcParse) - else() - target_include_directories(csg_primitive PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(csg_primitive IfcParse) - set_target_properties(csg_primitive PROPERTIES FOLDER Examples) - endif() - install(TARGETS csg_primitive) - - # ellipse_pies - add_executable(ellipse_pies ellipse_pies.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(ellipse_pies IfcOpenShell::IfcParse) - else() - target_include_directories(ellipse_pies PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(ellipse_pies IfcParse) - set_target_properties(ellipse_pies PROPERTIES FOLDER Examples) - endif() - install(TARGETS ellipse_pies) - - # faces - add_executable(faces faces.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(faces IfcOpenShell::IfcParse) - else() - target_include_directories(faces PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(faces IfcParse) - set_target_properties(faces PROPERTIES FOLDER Examples) - endif() - install(TARGETS faces) - - # ifc_curve_rebar - add_executable(ifc_curve_rebar ifc_curve_rebar.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(ifc_curve_rebar IfcOpenShell::IfcParse) - else() - target_include_directories(ifc_curve_rebar PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(ifc_curve_rebar IfcParse) - set_target_properties(ifc_curve_rebar PROPERTIES FOLDER Examples) - endif() - install(TARGETS ifc_curve_rebar) - - # profiles - add_executable(profiles profiles.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(profiles IfcOpenShell::IfcParse) - else() - target_include_directories(profiles PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(profiles IfcParse) - set_target_properties(profiles PROPERTIES FOLDER Examples) - endif() - install(TARGETS profiles) - - # IfcParseExamples - add_executable(IfcParseExamples IfcParseExamples.cpp) - - if(STANDALONE_PROJECT) - target_link_libraries(IfcParseExamples IfcOpenShell::IfcParse) - else() - target_include_directories(IfcParseExamples PRIVATE "${CMAKE_SOURCE_DIR}/../src") - target_link_libraries(IfcParseExamples IfcParse) - set_target_properties(IfcParseExamples PROPERTIES FOLDER Examples) - endif() - install(TARGETS IfcParseExamples) +if("2x3" IN_LIST SCHEMA_VERSIONS) + build_example(composite_profile_def) + build_example(csg_primitive) + build_example(ellipse_pies) + build_example(faces) + build_example(ifc_curve_rebar) + build_example(profiles) + build_example(IfcParseExamples) if(WITH_OPENCASCADE) - # IfcOpenHouse and IfcAdvancedHouse - add_executable(IfcOpenHouse IfcOpenHouse.cpp) - add_executable(IfcAdvancedHouse IfcAdvancedHouse.cpp) - add_library(IfcHouseInterface INTERFACE) - - if(STANDALONE_PROJECT) - target_link_libraries(IfcHouseInterface INTERFACE IfcOpenShell::IfcParse IfcOpenShell::geometry_serializer) - else() - target_link_libraries(IfcHouseInterface INTERFACE IfcParse geometry_serializer) - set_target_properties(IfcOpenHouse PROPERTIES FOLDER Examples) - set_target_properties(IfcAdvancedHouse PROPERTIES FOLDER Examples) - endif() - target_link_libraries(IfcOpenHouse PRIVATE IfcHouseInterface) - target_link_libraries(IfcAdvancedHouse PRIVATE IfcHouseInterface) - install(TARGETS IfcOpenHouse IfcAdvancedHouse) + build_example(IfcOpenHouse geometry_serializer) + build_example(IfcAdvancedHouse geometry_serializer) endif() endif() -if(SCHEMA_VERSIONS MATCHES "4x3_add2") - # IfcAlignment and IfcSimplifiedAlignment - add_executable(IfcAlignment IfcAlignment.cpp) - add_executable(IfcSimplifiedAlignment IfcSimplifiedAlignment.cpp) - add_library(IfcAlignmentInterface INTERFACE) - - if(STANDALONE_PROJECT) - target_link_libraries(IfcAlignmentInterface INTERFACE IfcOpenShell::IfcParse) - else() - target_link_libraries(IfcAlignmentInterface INTERFACE IfcParse) - set_target_properties(IfcAlignment PROPERTIES FOLDER Examples) - set_target_properties(IfcSimplifiedAlignment PROPERTIES FOLDER Examples) - endif() - - target_link_libraries(IfcAlignment PRIVATE IfcAlignmentInterface) - target_link_libraries(IfcSimplifiedAlignment PRIVATE IfcAlignmentInterface) - - install(TARGETS IfcAlignment IfcSimplifiedAlignment) +if("4x3_add2" IN_LIST SCHEMA_VERSIONS) + build_example(IfcAlignment) + build_example(IfcSimplifiedAlignment) endif() diff --git a/src/examples/IfcAlignment.cpp b/src/examples/IfcAlignment.cpp index d4e3ed0348..491aef1e79 100644 --- a/src/examples/IfcAlignment.cpp +++ b/src/examples/IfcAlignment.cpp @@ -489,6 +489,6 @@ int main() { } // That's it - save the model to a file - std::ofstream ofs("FHWA_Bridge_Geometry_Alignment_Example.ifc"); + std::ofstream ofs("IfcAlignment.ifc"); ofs << file; } diff --git a/src/examples/IfcSimplifiedAlignment.cpp b/src/examples/IfcSimplifiedAlignment.cpp index bde0e59b61..1c88de4c29 100644 --- a/src/examples/IfcSimplifiedAlignment.cpp +++ b/src/examples/IfcSimplifiedAlignment.cpp @@ -159,6 +159,6 @@ int main() { } // That's it - save the model to a file - std::ofstream ofs("FHWA_Bridge_Geometry_Alignment_Example_Simplified.ifc"); + std::ofstream ofs("IfcSimplifiedAlignment.ifc"); ofs << file; } diff --git a/src/examples/arbitrary_open_profile_def.cpp b/src/examples/arbitrary_open_profile_def.cpp index 5393af53ae..1346c56a5d 100644 --- a/src/examples/arbitrary_open_profile_def.cpp +++ b/src/examples/arbitrary_open_profile_def.cpp @@ -107,7 +107,7 @@ void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema:: } int main(int argc, char** argv) { - const char filename[] = "IfcArbitraryOpenProfileDef.ifc"; + const char filename[] = "arbitrary_open_profile_def.ifc"; IfcHierarchyHelper file; file.header().file_name()->setname(filename); @@ -134,7 +134,7 @@ int main(int argc, char** argv) { create_products_from_curve(file, trim); using namespace std::string_literals; - file.getSingle()->setName("IfcArbitraryOpenProfileDef"s); + file.getSingle()->setName("arbitrary_open_profile_def"s); std::ofstream f(filename); f << file; diff --git a/src/examples/composite_profile_def.cpp b/src/examples/composite_profile_def.cpp index 3a7281be43..2b5f082f55 100644 --- a/src/examples/composite_profile_def.cpp +++ b/src/examples/composite_profile_def.cpp @@ -36,7 +36,7 @@ typedef IfcParse::IfcGlobalId guid; boost::none_t const null = boost::none; int main(int argc, char** argv) { - const char filename[] = "IfcCompositeProfileDef.ifc"; + const char filename[] = "composite_profile_def.ifc"; IfcHierarchyHelper file; file.header().file_name()->setname(filename); @@ -113,7 +113,7 @@ int main(int argc, char** argv) { product->setRepresentation(shape); using namespace std::string_literals; - file.getSingle()->setName("IfcCompositeProfileDef"s); + file.getSingle()->setName("composite_profile_def"s); std::ofstream f(filename); f << file; diff --git a/src/examples/csg_primitive.cpp b/src/examples/csg_primitive.cpp index b157281402..4d805a3375 100644 --- a/src/examples/csg_primitive.cpp +++ b/src/examples/csg_primitive.cpp @@ -133,7 +133,7 @@ public: }; int main(int argc, char** argv) { - const char filename[] = "IfcCsgPrimitive.ifc"; + const char filename[] = "csg_primitive.ifc"; IfcHierarchyHelper file; file.header().file_name()->setname(filename); @@ -187,7 +187,7 @@ int main(int argc, char** argv) { product->setRepresentation(shape); using namespace std::string_literals; - file.getSingle()->setName("IfcCompositeProfileDef"s); + file.getSingle()->setName("csg_primitive"s); std::ofstream f(filename); f << file; diff --git a/src/examples/ifc_curve_rebar.cpp b/src/examples/ifc_curve_rebar.cpp index 4e674d5e95..81a705dc5e 100644 --- a/src/examples/ifc_curve_rebar.cpp +++ b/src/examples/ifc_curve_rebar.cpp @@ -82,8 +82,8 @@ void create_curve_rebar(IfcHierarchyHelper& file) IfcSchema::IfcCircle* circle = new IfcSchema::IfcCircle(axis1, R); file.addEntity(circle); - aggregate_of_instance::ptr trim1(new aggregate_of_instance); - aggregate_of_instance::ptr trim2(new aggregate_of_instance); + IfcSchema::IfcTrimmingSelect::list::ptr trim1(new IfcSchema::IfcTrimmingSelect::list); + IfcSchema::IfcTrimmingSelect::list::ptr trim2(new IfcSchema::IfcTrimmingSelect::list); trim1->push(new IfcSchema::IfcParameterValue(180)); trim1->push(p2); @@ -91,7 +91,7 @@ void create_curve_rebar(IfcHierarchyHelper& file) trim2->push(new IfcSchema::IfcParameterValue(270)); trim2->push(p4); - IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->as(), trim2->as(), false, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1, trim2, false, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); file.addEntity(trimmed_curve); IfcSchema::IfcCompositeCurveSegment* segment2 = new IfcSchema::IfcCompositeCurveSegment(IfcSchema::IfcTransitionCode::IfcTransitionCode_CONTSAMEGRADIENT, false, trimmed_curve); diff --git a/src/examples/triangulated_faceset.cpp b/src/examples/triangulated_faceset.cpp index f54ae4f3d0..18eb1c3b73 100644 --- a/src/examples/triangulated_faceset.cpp +++ b/src/examples/triangulated_faceset.cpp @@ -82,7 +82,7 @@ int main(int argc, char** argv) { product->setRepresentation(shape); - const std::string filename = "tesselated_faceset.ifc"; + const std::string filename = "triangulated_faceset.ifc"; file.header().file_name()->setname(filename); std::ofstream f(filename); f << file; From 0d8c4c779568378e1e8a680452f7c821d6bc1eb0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 24 Jan 2026 23:03:18 +1100 Subject: [PATCH 053/171] Fix #7587. See #7550. Bug where you couldn't load or edit arrayed voids. Reuse tool.Geometry.duplicate_ifc_objects because that's where all duplication logic should stay instead of half reimplementing it every time which introduces subtle bugs. --- src/bonsai/bonsai/tool/blender.py | 3 ++- src/bonsai/bonsai/tool/geometry.py | 8 ++++++++ src/bonsai/bonsai/tool/model.py | 26 ++++++++++++-------------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index 24cd5071fa..56e78d5c4f 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -1223,7 +1223,8 @@ class Blender(bonsai.core.tool.Blender): @classmethod def constrain_children_to_parent(cls, parent_element: ifcopenshell.entity_instance) -> None: - parent_obj = tool.Ifc.get_object(parent_element) + if not (parent_obj := tool.Ifc.get_object(parent_element)): + return # Filtered out, arrayed void, etc assert isinstance(parent_obj, bpy.types.Object) children = cls.get_all_children_objects(parent_element) for child in children: diff --git a/src/bonsai/bonsai/tool/geometry.py b/src/bonsai/bonsai/tool/geometry.py index e2955d3d28..e10b2de832 100644 --- a/src/bonsai/bonsai/tool/geometry.py +++ b/src/bonsai/bonsai/tool/geometry.py @@ -2106,6 +2106,14 @@ class Geometry(bonsai.core.tool.Geometry): active_object: Optional[bpy.types.Object] = None, linked: bool = False, ) -> tuple[dict[ifcopenshell.entity_instance, list[ifcopenshell.entity_instance]], Union[bpy.types.Object, None]]: + """Duplicate IFC objects + + Duplication is surprisingly complicated because you might only select + part of a group of related items. + + TODO: write some tests and figure out how to make this function + actually understandable. + """ # Handle arrays objects_to_duplicate = set(objects_to_duplicate) arrays_to_duplicate, array_children = cls.process_arrays_for_duplication(objects_to_duplicate) diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index 28506bd8db..b8af52705c 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -1063,8 +1063,7 @@ class Model(bonsai.core.tool.Model): removed_children = set(array["children"]) for removed_child in removed_children: element = tool.Ifc.get().by_guid(removed_child) - obj = tool.Ifc.get_object(element) - if obj: + if obj := tool.Ifc.get_object(element): tool.Geometry.delete_ifc_object(obj) array["children"].clear() @@ -1087,19 +1086,18 @@ class Model(bonsai.core.tool.Model): offset = base_offset * i for obj in obj_stack: - # get currently proccesed array element and it's object - if child_i >= total_existing_children: - child_obj = tool.Spatial.duplicate_object_and_data(obj) - child_element = tool.Spatial.run_root_copy_class(obj=child_obj) - else: + try: global_id = array["children"][child_i] - try: - child_element = tool.Ifc.get().by_guid(global_id) - child_obj = tool.Ifc.get_object(child_element) - assert child_obj - except: - child_obj = tool.Spatial.duplicate_object_and_data(obj) - child_element = tool.Spatial.run_root_copy_class(obj=child_obj) + child_element = tool.Ifc.get().by_guid(global_id) + child_obj = tool.Ifc.get_object(child_element) + assert child_obj + except: + old_to_new, _ = tool.Geometry.duplicate_ifc_objects([obj]) + # TODO Is this correct to assume one child? I really + # don't understand the linked aggregates and array + # behaviour. + child_element = list(old_to_new.values())[0][0] + child_obj = tool.Ifc.get_object(child_element) # add child pset child_pset = tool.Pset.get_element_pset(child_element, "BBIM_Array") From 884661a454f117da9f95791d30311e2c0b3a088c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jan 2026 10:43:27 +1100 Subject: [PATCH 054/171] See #7537. Quick fix for regression in editing slabs. Needs further investigation. --- src/bonsai/bonsai/bim/module/model/slab.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index b6046df18d..46ea91dc08 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -744,6 +744,8 @@ class EnableEditingExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): usage_type = tool.Model.get_usage_type(element) + # TODO: review #7537 properly, this is a quick fix but something doesn't seem right. + original_rotation_x = 0 if extrusion.Position: position = Matrix(ifcopenshell.util.placement.get_axis2placement(extrusion.Position).tolist()) position.translation *= self.unit_scale From 12f8863014d5e1c73d15587d2523f73fafda18ed Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jan 2026 14:12:16 +1100 Subject: [PATCH 055/171] Revert "Fix #7519: Hide depth attribute in Item Mode for elements with material layer sets" This reverts commit 99b162f712bdb7d387d38624c574643bcf30c6fc. --- src/bonsai/bonsai/bim/module/model/workspace.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/workspace.py b/src/bonsai/bonsai/bim/module/model/workspace.py index 578fbefa2a..30acee46e3 100644 --- a/src/bonsai/bonsai/bim/module/model/workspace.py +++ b/src/bonsai/bonsai/bim/module/model/workspace.py @@ -399,16 +399,6 @@ class EditItemUI: assert obj mesh_props = tool.Geometry.get_mesh_props(obj.data) - - # Get the parent element from representation_obj to check for layer set usage - has_layer_set_usage = False - props = tool.Geometry.get_geometry_props() - if props.representation_obj: - parent_element = tool.Ifc.get_entity(props.representation_obj) - if parent_element: - material_usage = tool.Model.get_usage_type(parent_element) - has_layer_set_usage = material_usage == "LAYER3" - if AuthoringData.data["is_representation_item_swept_solid"]: # TODO: support EndSweptArea for IfcRevolvedAreaSolidTapered, # will need to add second attribute for this. @@ -422,12 +412,8 @@ class EditItemUI: op.profile_id = int(mesh_props.item_profile) for item_attribute in mesh_props.item_attributes: - # Skip depth attribute for LAYER3 objects with layer set usage - if has_layer_set_usage and item_attribute.name.lower() == "depth": - continue row = cls.layout.row() draw_attribute(item_attribute, cls.layout) - if len(mesh_props.item_attributes) or AuthoringData.data["is_representation_item_swept_solid"]: row = cls.layout.row() row.operator("bim.update_item_attributes", icon="FILE_REFRESH", text="") From 0e4f2fada1435bfafefd54dfd6b8af1e69252274 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jan 2026 14:16:35 +1100 Subject: [PATCH 056/171] Fix #7519. Do not import parametrically locked item attributes. The previous fix by @theoryshaw had the correct conclusion but had some issues: 1. Don't implement anything that fetches IFC data in the UI draw calls. This historically has lead to race conditions and crashes. The data classes are much preferred. 2. Rather than load the inapplicable attribute then selectively omit it in the UI, it's preferred to just never load it in the first place. --- src/bonsai/bonsai/tool/geometry.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bonsai/bonsai/tool/geometry.py b/src/bonsai/bonsai/tool/geometry.py index e10b2de832..51ff6bfcf3 100644 --- a/src/bonsai/bonsai/tool/geometry.py +++ b/src/bonsai/bonsai/tool/geometry.py @@ -1797,6 +1797,10 @@ class Geometry(bonsai.core.tool.Geometry): def import_item_attributes(cls, obj: bpy.types.Object) -> None: props = tool.Geometry.get_mesh_props(obj.data) props.item_attributes.clear() + element = tool.Ifc.get_entity(tool.Geometry.get_geometry_props().representation_obj) + if tool.Model.get_usage_type(element) == "LAYER3": + return # All LAYER3 attributes are parametrically determined from the IfcMaterialLayerSet + item = tool.Ifc.get().by_id(props.ifc_definition_id) allowed_attributes = [ a.name() From b4caf3b2ddb534f65e00bb1e8c034c45e93400be Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jan 2026 15:27:23 +1100 Subject: [PATCH 057/171] Fix #7153. Fix regression in purging types in IFC2X3 from 56861b9 --- src/bonsai/bonsai/tool/type.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/tool/type.py b/src/bonsai/bonsai/tool/type.py index 6c98e8bb59..43d86d5076 100644 --- a/src/bonsai/bonsai/tool/type.py +++ b/src/bonsai/bonsai/tool/type.py @@ -74,11 +74,13 @@ class Type(bonsai.core.tool.Type): def get_model_types(cls) -> list[ifcopenshell.entity_instance]: ifc_file = tool.Ifc.get() types = ifc_file.by_type("IfcElementType") - types += ifc_file.by_type("IfcSpatialElementType") - types += ifc_file.by_type("IfcTypeProduct", include_subtypes=False) - if not tool.Ifc.get_schema().startswith("IFC4X3"): + if tool.Ifc.get_schema() == "IFC2X3": types += ifc_file.by_type("IfcWindowStyle") types += ifc_file.by_type("IfcDoorStyle") + types += ifc_file.by_type("IfcSpatialStructureElementType") + else: + types += ifc_file.by_type("IfcSpatialElementType") + types += ifc_file.by_type("IfcTypeProduct", include_subtypes=False) return types @classmethod From a6394d8628dc73b69e0bd412470366835c95790b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jan 2026 20:58:29 +1100 Subject: [PATCH 058/171] Revert "Closes #3764: When switching an instance to a different beam type, preserve the CardinalPoint." This reverts commit 4874f7770b9c0ffa30022855cc611fe6f3c7d9fd. --- src/bonsai/bonsai/core/type.py | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/bonsai/bonsai/core/type.py b/src/bonsai/bonsai/core/type.py index 2918e841f7..226f00c461 100644 --- a/src/bonsai/bonsai/core/type.py +++ b/src/bonsai/bonsai/core/type.py @@ -19,7 +19,6 @@ from __future__ import annotations import bonsai.core.geometry from typing import TYPE_CHECKING, Optional -import ifcopenshell.util.element if TYPE_CHECKING: import bpy @@ -33,34 +32,14 @@ def assign_type( element: ifcopenshell.entity_instance, type: ifcopenshell.entity_instance, ) -> None: - - # Get the instance's current CardinalPoint before type assignment - instance_cardinal_point = None - instance_material = ifcopenshell.util.element.get_material(element) - if instance_material and instance_material.is_a("IfcMaterialProfileSetUsage"): - instance_cardinal_point = instance_material.CardinalPoint - ifc.run("type.assign_type", related_objects=[element], relating_type=type) obj = ifc.get_object(element) - if type_tool.has_material_usage(element): - # Restore the instance's CardinalPoint to the new material usage - if instance_cardinal_point is not None: - new_instance_material = ifcopenshell.util.element.get_material(element) - if new_instance_material and new_instance_material.is_a("IfcMaterialProfileSetUsage"): - if new_instance_material.CardinalPoint != instance_cardinal_point: - new_instance_material.CardinalPoint = instance_cardinal_point - - # Force representation regeneration - from bonsai.bim.module.model.profile import DumbProfileRecalculator - - DumbProfileRecalculator().recalculate([obj]) - # for now, representation regeneration handled by API listeners + pass # for now, representation regeneration handled by API listeners else: type_data = type_tool.get_object_data(ifc.get_object(type)) if type_data: type_tool.change_object_data(obj, type_data, is_global=False) - type_tool.disable_editing(obj) From d62a6186b50d5ab71296a51eb14b27cfe08d287f Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 26 Jan 2026 00:01:43 +1100 Subject: [PATCH 059/171] Demo project preset shouldn't have mass or time by default --- src/bonsai/bonsai/bim/module/project/operator.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index b0f74cfb40..f8aebd2a34 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -119,8 +119,6 @@ class NewProject(bpy.types.Operator): bpy.context.scene.unit_settings.length_unit = "MILLIMETERS" bim_props.area_unit = "SQUARE_METRE" bim_props.volume_unit = "CUBIC_METRE" - bim_props.mass_unit = "KILOGRAM" - bim_props.time_unit = "SECOND" pprops.template_file = "IFC4 Demo Template.ifc" if self.preset != "wizard": From 2f5bcccd2c417d7f5224e6bb6dff11f62b23d068 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 16:08:33 +0500 Subject: [PATCH 060/171] bim.assign_class - don't flip normals for objects with negative scale in Blender 5.1+ The issue was fixed upstream - https://projects.blender.org/blender/blender/issues/102266 --- src/bonsai/bonsai/bim/module/root/operator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index a5bf766ae2..5a0782203e 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -307,7 +307,7 @@ class AssignClass(bpy.types.Operator, tool.Ifc.Operator): with context.temp_override(selected_editable_objects=[obj]): bpy.ops.object.transform_apply(location=False, rotation=False, scale=True, properties=False) # object.transform_apply is losing normals. - if is_negative: + if is_negative and bpy.app.version >= (5, 1, 0): for polygon in obj.data.polygons: polygon.flip() From b96a21350c5bdd8708b06777ed7bd610b38d08de Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 22 Jan 2026 16:54:32 +0500 Subject: [PATCH 061/171] ifcsverchok - document value types in doc-strings --- src/ifcsverchok/helper.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/ifcsverchok/helper.py b/src/ifcsverchok/helper.py index 8f9bda0c97..7407bd94cd 100644 --- a/src/ifcsverchok/helper.py +++ b/src/ifcsverchok/helper.py @@ -75,7 +75,18 @@ def get_socket_value( *, value_type: Literal["SINGLE_VALUE", "CONTAINER", "FLATTEN"] = "SINGLE_VALUE", ) -> Any: - value = sockets[name].sv_get() + """ + :param value_type: + + - ``SINGLE_VALUE`` - e.g. ``[[x]]`` -> ``x``. + + - ``CONTAINER`` - e.g. ``[ [ [x, y, z], [x,y, z] ] ]`` -> ``[ [x1, y1, z1], [x2, y2, z2] ]``. + + - ``FLATTEN`` - e.g. `` [ [ [x1], [x2] ] ] `` -> `` [x1, x2] ``. + """ + socket = sockets[name] + assert isinstance(socket, sverchok.core.sockets.SvSocketCommon) + value = socket.sv_get() if value_type == "FLATTEN": return flatten_data(value) value = value[0] @@ -91,10 +102,19 @@ def set_socket_value( *, value_type: Literal["SINGLE_VALUE", "FINAL_VALUE"] = "SINGLE_VALUE", ) -> None: + """ + :param value_type: + + - ``SINGLE_VALUE`` - e.g. ``x`` -> ``[[x]]``. + + - ``FINAL_VALUE`` - keep value as is. + """ + socket = sockets[name] + assert isinstance(socket, sverchok.core.sockets.SvSocketCommon) if value_type == "SINGLE_VALUE": - sockets[name].sv_set([[value]]) + socket.sv_set([[value]]) return - sockets[name].sv_set(value) + socket.sv_set(value) def create_socket( From 523bcf34436912fa14f12c6bc890a7d109ff0348 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 22 Jan 2026 17:21:29 +0500 Subject: [PATCH 062/171] ifcsverchok - node to convert sverchok geometry to ifc Example - https://files.catbox.moe/wecgw9.mp4 --- src/ifcsverchok/__init__.py | 1 + .../nodes/ifc/shape_builder/mesh.py | 52 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 src/ifcsverchok/nodes/ifc/shape_builder/mesh.py diff --git a/src/ifcsverchok/__init__.py b/src/ifcsverchok/__init__.py index 4594d8a367..8fc011b26a 100644 --- a/src/ifcsverchok/__init__.py +++ b/src/ifcsverchok/__init__.py @@ -120,6 +120,7 @@ def nodes_index() -> list[tuple[str, list[tuple[str, str]]]]: ("ifc.shape_builder.representation", "SvIfcSbRepresentation"), ("ifc.shape_builder.test", "SvIfcSbTest"), ("ifc.shape_builder.shape_output", "SvSbShapeOutput"), + ("ifc.shape_builder.mesh", "SvSbMesh"), ], ), ] diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py b/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py new file mode 100644 index 0000000000..ec2609613e --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py @@ -0,0 +1,52 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import sverchok.core.sockets +from ifcsverchok.nodes.ifc.shape_builder.representation import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode + +import ifcsverchok.helper as helper + + +class SvSbMesh(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): + bl_idname = "SvSbMesh" + bl_label = "IFC Mesh" + + def sv_init(self, context): + helper.create_socket(self.inputs, "Vers", socket_type=sverchok.core.sockets.SvVerticesSocket) + helper.create_socket(self.inputs, "Pols") + helper.create_socket(self.outputs, "Representation Item", data_type="list[list[ifcopenshell.entity_instance]]") + + def process(self): + ifc_file = helper.get_file() + + vertices: list[[list[float]]] = helper.get_socket_value(self.inputs, "Vers", value_type="CONTAINER") + polygons: list[[list[int]]] = helper.get_socket_value(self.inputs, "Pols", value_type="CONTAINER") + + builder = ShapeBuilder(ifc_file) + mesh = builder.mesh(vertices, polygons) + helper.set_socket_value(self.outputs, "Representation Item", mesh) + + +def register(): + bpy.utils.register_class(SvSbMesh) + + +def unregister(): + bpy.utils.unregister_class(SvSbMesh) From d4d10b2eb52c86e87102ab487396dd54dddfe669 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 22 Jan 2026 19:30:23 +0500 Subject: [PATCH 063/171] ifcsverchok - polyline node Demo - https://files.catbox.moe/azv66e.mp4 --- src/ifcsverchok/__init__.py | 1 + .../nodes/ifc/shape_builder/polyline.py | 53 +++++++++++++++++++ .../nodes/ifc/shape_builder/shape_output.py | 1 + 3 files changed, 55 insertions(+) create mode 100644 src/ifcsverchok/nodes/ifc/shape_builder/polyline.py diff --git a/src/ifcsverchok/__init__.py b/src/ifcsverchok/__init__.py index 8fc011b26a..2355ab6783 100644 --- a/src/ifcsverchok/__init__.py +++ b/src/ifcsverchok/__init__.py @@ -121,6 +121,7 @@ def nodes_index() -> list[tuple[str, list[tuple[str, str]]]]: ("ifc.shape_builder.test", "SvIfcSbTest"), ("ifc.shape_builder.shape_output", "SvSbShapeOutput"), ("ifc.shape_builder.mesh", "SvSbMesh"), + ("ifc.shape_builder.polyline", "SvSbPolyline"), ], ), ] diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py b/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py new file mode 100644 index 0000000000..59e6c94804 --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py @@ -0,0 +1,53 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import sverchok.core.sockets +from ifcsverchok.nodes.ifc.shape_builder.representation import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode + +import ifcsverchok.helper as helper + + +class SvSbPolyline(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): + bl_idname = "SvSbPolyline" + bl_label = "IFC Polyline" + bl_description = "Create closed polyline from vertices." + + def sv_init(self, context): + helper.create_socket(self.inputs, "Vers", socket_type=sverchok.core.sockets.SvVerticesSocket) + helper.create_socket(self.inputs, "Closed", data_type="list[list[bool]]") + helper.create_socket(self.outputs, "Representation Item", data_type="list[list[ifcopenshell.entity_instance]]") + + def process(self): + ifc_file = helper.get_file() + + vertices: list[[list[float]]] = helper.get_socket_value(self.inputs, "Vers", value_type="CONTAINER") + closed = helper.get_socket_value(self.inputs, "Closed") + + builder = ShapeBuilder(ifc_file) + Polyline = builder.polyline(vertices, closed=closed) + helper.set_socket_value(self.outputs, "Representation Item", Polyline) + + +def register(): + bpy.utils.register_class(SvSbPolyline) + + +def unregister(): + bpy.utils.unregister_class(SvSbPolyline) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py b/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py index c3555c25e4..2968c5e4ed 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py @@ -52,6 +52,7 @@ class SvSbShapeOutput(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): def create(self, entity: ifcopenshell.entity_instance) -> None: assert bpy.context.scene settings = ifcopenshell.geom.settings() + settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) shape = ifcopenshell.geom.create_shape(settings, entity) assert isinstance(shape, W.Triangulation) self.verts = ifcopenshell.util.shape.get_vertices(shape).tolist() From 4edcad13b8d85bc1dba177142dfb23cc7febfcfb Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 12:16:33 +0500 Subject: [PATCH 064/171] fix ruff --- src/bonsai/bonsai/tool/model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index b8af52705c..8ecd7c577b 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -1096,7 +1096,7 @@ class Model(bonsai.core.tool.Model): # TODO Is this correct to assume one child? I really # don't understand the linked aggregates and array # behaviour. - child_element = list(old_to_new.values())[0][0] + child_element = next(iter(old_to_new.values()))[0] child_obj = tool.Ifc.get_object(child_element) # add child pset From 72f8218fcd87429d920b08cb73b11cf959ba4b26 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 12:45:17 +0500 Subject: [PATCH 065/171] ruff - check for more unused imports --- src/bcf/bcf/v2/model/extensions.py | 2 +- src/bcf/bcf/v2/topic.py | 3 +-- src/bcf/bcf/v2/visinfo.py | 2 +- src/bcf/bcf/v3/bcfapi.py | 1 - src/bcf/bcf/v3/document.py | 2 +- src/bcf/bcf/v3/visinfo.py | 2 +- src/bcf/pyproject.toml | 6 ++++++ src/bcf/tests/v3/test_example_files.py | 2 -- src/bsdd/bsdd.py | 1 - src/bsdd/pyproject.toml | 6 ++++++ src/ifc4d/__main__.py | 2 -- src/ifc4d/ifc4d/common.py | 2 -- src/ifc4d/ifc4d/csv2ifc.py | 2 -- src/ifc4d/ifc4d/csv4d2ifc.py | 1 - src/ifc4d/ifc4d/ifc2p6.py | 1 - src/ifc4d/ifc4d/msp2ifc.py | 3 +-- src/ifc4d/ifc4d/p62ifc.py | 4 ---- src/ifc4d/ifc4d/p6xer2ifc.py | 4 ---- src/ifc4d/ifc4d/pp2ifc.py | 1 - src/ifc4d/pyproject.toml | 6 ++++++ src/ifc5d/ifc5d/csv2ifc.py | 1 - src/ifc5d/ifc5d/ifc5Dspreadsheet.py | 6 +++--- src/ifc5d/ifc5d/qto.py | 2 -- src/ifc5d/pyproject.toml | 6 ++++++ src/ifc5d/test/test_csv2ifc.py | 1 - src/ifccsv/ifccsv.py | 5 +---- src/ifccsv/pyproject.toml | 6 ++++++ src/ifcpatch/bootstrap.py | 7 ------- src/ifcpatch/ifcpatch/__init__.py | 1 - src/ifcpatch/ifcpatch/recipes/AGS2IFC.py | 2 -- .../recipes/AddGeometricRepresentationToAlignment.py | 1 - .../recipes/AddLinearPlacementFallbackPosition.py | 1 - .../recipes/AddZeroLengthSegmentToAlignment.py | 1 - src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py | 4 ---- .../ifcpatch/recipes/ConvertNestToAggregate.py | 1 - .../ifcpatch/recipes/ConvertPropertiesToQuantities.py | 2 -- .../ifcpatch/recipes/DowngradeIndexedPolyCurve.py | 1 - src/ifcpatch/ifcpatch/recipes/ExtractElements.py | 1 - .../ifcpatch/recipes/ExtractPropertiesToSQLite.py | 5 ----- .../ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py | 2 -- .../ifcpatch/recipes/FixArchiCADToRevitSpaces.py | 2 -- src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py | 10 ---------- .../recipes/FixRevitClassificationCodeTypes.py | 1 - src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py | 1 - src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py | 2 -- src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py | 1 - src/ifcpatch/ifcpatch/recipes/Migrate.py | 1 - .../ifcpatch/recipes/OffsetObjectPlacements.py | 1 - src/ifcpatch/ifcpatch/recipes/Optimise.py | 1 - .../ifcpatch/recipes/PatchStationReferentPosition.py | 1 - .../ifcpatch/recipes/ResetAbsoluteCoordinates.py | 2 +- .../ifcpatch/recipes/ResetSpatialElementLocations.py | 2 -- src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py | 1 - src/ifcpatch/ifcpatch/recipes/TessellateElements.py | 1 - src/ifcpatch/ifcpatch/recipes/UnsharePsets.py | 1 - src/ifcpatch/pyproject.toml | 8 ++++++++ src/ifcpatch/test/test_ConvertLengthUnit.py | 1 - src/ifcpatch/test/test_ExtractElements.py | 1 - src/ifcpatch/test/test_Ifc2Sql.py | 9 --------- src/ifcpatch/test/test_MergeDuplicateTypes.py | 4 ---- src/ifcpatch/test/test_Migrate.py | 1 - src/ifcpatch/test/test_RegenerateGlobalIds.py | 5 ----- src/ifcpatch/test/test_ResetSpatialElementLocations.py | 1 - src/ifcpatch/test/test_SetFalseOrigin.py | 1 - src/ifcpatch/test/test_TesselateElements.py | 4 ---- src/ifcpatch/test/test_UnsharePsets.py | 1 - src/ifctester/ifctester/__init__.py | 2 +- src/ifctester/ifctester/ids.py | 6 ------ src/ifctester/pyproject.toml | 6 ++++++ src/ifctester/test/ids_doc_generator.py | 1 - src/ifctester/test/test_facet.py | 1 - src/ifctester/test/test_ids.py | 1 - src/ifctester/webapp/public/worker/api.py | 3 --- test/run.py | 1 - 74 files changed, 56 insertions(+), 138 deletions(-) diff --git a/src/bcf/bcf/v2/model/extensions.py b/src/bcf/bcf/v2/model/extensions.py index e50277570e..695027bc6c 100644 --- a/src/bcf/bcf/v2/model/extensions.py +++ b/src/bcf/bcf/v2/model/extensions.py @@ -14,7 +14,7 @@ # Currently extensions support for v2 is only read-only. -from dataclasses import dataclass, field, fields +from dataclasses import dataclass, field from typing import Optional diff --git a/src/bcf/bcf/v2/topic.py b/src/bcf/bcf/v2/topic.py index 30506d734d..2f69a0c18a 100644 --- a/src/bcf/bcf/v2/topic.py +++ b/src/bcf/bcf/v2/topic.py @@ -3,11 +3,10 @@ from __future__ import annotations import datetime -import tempfile import uuid import zipfile from pathlib import Path -from typing import Any, NoReturn, Optional, Union +from typing import Any, NoReturn, Optional import numpy as np from ifcopenshell import entity_instance diff --git a/src/bcf/bcf/v2/visinfo.py b/src/bcf/bcf/v2/visinfo.py index 1d081ae782..7081bf2052 100644 --- a/src/bcf/bcf/v2/visinfo.py +++ b/src/bcf/bcf/v2/visinfo.py @@ -1,7 +1,7 @@ import uuid import zipfile from collections.abc import Iterable -from typing import Any, Literal, Optional, Union +from typing import Literal, Optional, Union import ifcopenshell.util.placement import ifcopenshell.util.unit diff --git a/src/bcf/bcf/v3/bcfapi.py b/src/bcf/bcf/v3/bcfapi.py index 5c66cee067..127d9e3732 100644 --- a/src/bcf/bcf/v3/bcfapi.py +++ b/src/bcf/bcf/v3/bcfapi.py @@ -24,7 +24,6 @@ import time import urllib.parse import uuid import webbrowser -from re import A from typing import Any, Optional import requests diff --git a/src/bcf/bcf/v3/document.py b/src/bcf/bcf/v3/document.py index afc6be50b9..d906b96d26 100644 --- a/src/bcf/bcf/v3/document.py +++ b/src/bcf/bcf/v3/document.py @@ -1,7 +1,7 @@ """BCF XML V3 Documents handler.""" import zipfile -from typing import Any, Optional +from typing import Optional import bcf.v3.model as mdl from bcf.inmemory_zipfile import ZipFileInterface diff --git a/src/bcf/bcf/v3/visinfo.py b/src/bcf/bcf/v3/visinfo.py index 050641ed23..b3b99d7890 100644 --- a/src/bcf/bcf/v3/visinfo.py +++ b/src/bcf/bcf/v3/visinfo.py @@ -1,7 +1,7 @@ import uuid import zipfile from collections.abc import Iterable -from typing import Any, Literal, Optional, Union +from typing import Literal, Optional, Union import ifcopenshell.util.placement import ifcopenshell.util.unit diff --git a/src/bcf/pyproject.toml b/src/bcf/pyproject.toml index 7047595ce1..b4e990f39c 100644 --- a/src/bcf/pyproject.toml +++ b/src/bcf/pyproject.toml @@ -140,3 +140,9 @@ max-attributes = 10 [tool.pylint.format] expected-line-ending-format = "LF" max-line-length = 120 + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/bcf/tests/v3/test_example_files.py b/src/bcf/tests/v3/test_example_files.py index 6774c49982..c25a3f3f7e 100644 --- a/src/bcf/tests/v3/test_example_files.py +++ b/src/bcf/tests/v3/test_example_files.py @@ -1,11 +1,9 @@ -import json import os import zipfile from pathlib import Path import bcf.v3.model as mdl from bcf.v3.bcfxml import BcfXml -from bcf.v3.topic import TopicHandler from xsdata.models.datatype import XmlDateTime diff --git a/src/bsdd/bsdd.py b/src/bsdd/bsdd.py index ff633095bf..fbc14cc393 100644 --- a/src/bsdd/bsdd.py +++ b/src/bsdd/bsdd.py @@ -984,7 +984,6 @@ class Client: def apply_ifc_classification_properties( ifc_file: ifcopenshell.file, element: ifcopenshell.entity_instance, classificationProperties: dict[str, Any] ) -> None: - import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.element diff --git a/src/bsdd/pyproject.toml b/src/bsdd/pyproject.toml index d64d667a20..17fa72f37a 100644 --- a/src/bsdd/pyproject.toml +++ b/src/bsdd/pyproject.toml @@ -43,3 +43,9 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools] py-modules = ["bsdd","bsdd_json","type_hints"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifc4d/__main__.py b/src/ifc4d/__main__.py index 8313ba7464..b876db860c 100644 --- a/src/ifc4d/__main__.py +++ b/src/ifc4d/__main__.py @@ -1,6 +1,4 @@ import argparse -import os -import sys import ifcopenshell from ifc4d.msp2ifc import MSP2Ifc diff --git a/src/ifc4d/ifc4d/common.py b/src/ifc4d/ifc4d/common.py index f4fd42e1d1..296b8f36cb 100644 --- a/src/ifc4d/ifc4d/common.py +++ b/src/ifc4d/ifc4d/common.py @@ -4,11 +4,9 @@ from datetime import date, datetime, timedelta from typing import Any, TypedDict, Union import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.control import ifcopenshell.api.resource import ifcopenshell.api.sequence -import ifcopenshell.util.date from typing_extensions import NotRequired diff --git a/src/ifc4d/ifc4d/csv2ifc.py b/src/ifc4d/ifc4d/csv2ifc.py index 6efbf4fad6..a908acdb53 100644 --- a/src/ifc4d/ifc4d/csv2ifc.py +++ b/src/ifc4d/ifc4d/csv2ifc.py @@ -24,7 +24,6 @@ import datetime from typing import Any, Literal, NamedTuple, Optional, Union, cast, get_args import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.cost import ifcopenshell.api.pset import ifcopenshell.api.resource @@ -33,7 +32,6 @@ import ifcopenshell.api.unit import ifcopenshell.util.date import ifcopenshell.util.element import ifcopenshell.util.resource -import ifcopenshell.util.unit import isodate SUPPORTED_COLUMN = Literal[ diff --git a/src/ifc4d/ifc4d/csv4d2ifc.py b/src/ifc4d/ifc4d/csv4d2ifc.py index 2e519cc0ea..4247a06bbc 100644 --- a/src/ifc4d/ifc4d/csv4d2ifc.py +++ b/src/ifc4d/ifc4d/csv4d2ifc.py @@ -22,7 +22,6 @@ import locale import re import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.sequence import ifcopenshell.util.date diff --git a/src/ifc4d/ifc4d/ifc2p6.py b/src/ifc4d/ifc4d/ifc2p6.py index 5093f306be..9294e91cbf 100644 --- a/src/ifc4d/ifc4d/ifc2p6.py +++ b/src/ifc4d/ifc4d/ifc2p6.py @@ -24,7 +24,6 @@ import ifcopenshell import ifcopenshell.util.date import ifcopenshell.util.sequence -from .common import ScheduleIfcGenerator class Ifc2P6: diff --git a/src/ifc4d/ifc4d/msp2ifc.py b/src/ifc4d/ifc4d/msp2ifc.py index 3ba14a6985..91ae683c84 100644 --- a/src/ifc4d/ifc4d/msp2ifc.py +++ b/src/ifc4d/ifc4d/msp2ifc.py @@ -18,10 +18,9 @@ import datetime import xml.etree.ElementTree as ET -from datetime import date, timedelta +from datetime import timedelta import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.control import ifcopenshell.api.pset import ifcopenshell.api.root diff --git a/src/ifc4d/ifc4d/p62ifc.py b/src/ifc4d/ifc4d/p62ifc.py index 833bf39dd3..ed2781d5cc 100644 --- a/src/ifc4d/ifc4d/p62ifc.py +++ b/src/ifc4d/ifc4d/p62ifc.py @@ -17,12 +17,8 @@ # along with Ifc4D. If not, see . import datetime -import math import xml.etree.ElementTree as ET -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.date from .common import ScheduleIfcGenerator diff --git a/src/ifc4d/ifc4d/p6xer2ifc.py b/src/ifc4d/ifc4d/p6xer2ifc.py index ef218ade2d..935634767d 100644 --- a/src/ifc4d/ifc4d/p6xer2ifc.py +++ b/src/ifc4d/ifc4d/p6xer2ifc.py @@ -16,11 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with Ifc4D. If not, see . -from datetime import date, datetime, timedelta -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.date from xerparser.reader import Reader from .common import ScheduleIfcGenerator diff --git a/src/ifc4d/ifc4d/pp2ifc.py b/src/ifc4d/ifc4d/pp2ifc.py index 338a887e91..ce76b60226 100644 --- a/src/ifc4d/ifc4d/pp2ifc.py +++ b/src/ifc4d/ifc4d/pp2ifc.py @@ -12,7 +12,6 @@ from collections import defaultdict from datetime import timedelta from typing import Any -import ifcopenshell.util.date from .common import Activity, Calendar, ScheduleIfcGenerator, WBSEntry from .wpattern import AstaCalendarWorkPattern diff --git a/src/ifc4d/pyproject.toml b/src/ifc4d/pyproject.toml index 6bb2cc9f22..bbc101905a 100644 --- a/src/ifc4d/pyproject.toml +++ b/src/ifc4d/pyproject.toml @@ -28,3 +28,9 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools.packages.find] include = ["ifc4d"] exclude = ["test*"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifc5d/ifc5d/csv2ifc.py b/src/ifc5d/ifc5d/csv2ifc.py index b1edd82d88..c33d6e847e 100644 --- a/src/ifc5d/ifc5d/csv2ifc.py +++ b/src/ifc5d/ifc5d/csv2ifc.py @@ -24,7 +24,6 @@ from pathlib import Path from typing import Optional, TypedDict, Union import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.control import ifcopenshell.api.cost import ifcopenshell.api.root diff --git a/src/ifc5d/ifc5d/ifc5Dspreadsheet.py b/src/ifc5d/ifc5d/ifc5Dspreadsheet.py index 324340fb1c..5aab765c26 100644 --- a/src/ifc5d/ifc5d/ifc5Dspreadsheet.py +++ b/src/ifc5d/ifc5d/ifc5Dspreadsheet.py @@ -25,7 +25,7 @@ import logging import os import time from collections import Counter -from typing import Any, Optional, TypedDict, Union +from typing import Optional, TypedDict, Union import ifcopenshell import ifcopenshell.util.cost @@ -420,7 +420,7 @@ class Ifc5DCsvWriter(Ifc5Dwriter): class Ifc5DOdsWriter(Ifc5Dwriter): def write(self) -> None: - from odf.number import CurrencyStyle, CurrencySymbol, Number, NumberStyle, Text + from odf.number import CurrencyStyle, CurrencySymbol, Number from odf.opendocument import OpenDocumentSpreadsheet from odf.style import Style, TableCellProperties @@ -450,7 +450,7 @@ class Ifc5DOdsWriter(Ifc5Dwriter): self.doc.save(os.path.join(self.output, file_name), True) def write_table(self, cost_schedule): - from odf.number import CurrencyStyle, CurrencySymbol, Number, NumberStyle, Text + from odf.number import CurrencySymbol, Number from odf.table import Table, TableCell, TableRow from odf.text import P diff --git a/src/ifc5d/ifc5d/qto.py b/src/ifc5d/ifc5d/qto.py index f7fba8d9e5..955c6fd7af 100644 --- a/src/ifc5d/ifc5d/qto.py +++ b/src/ifc5d/ifc5d/qto.py @@ -27,7 +27,6 @@ from collections.abc import Iterable from typing import Any, Literal, NamedTuple, Union, get_args import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W @@ -35,7 +34,6 @@ import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.shape -import ifcopenshell.util.type import ifcopenshell.util.unit diff --git a/src/ifc5d/pyproject.toml b/src/ifc5d/pyproject.toml index 4d89b8a108..8d51a63819 100644 --- a/src/ifc5d/pyproject.toml +++ b/src/ifc5d/pyproject.toml @@ -35,3 +35,9 @@ exclude = ["test*"] [tool.setuptools.package-data] "*" = ["*.*"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifc5d/test/test_csv2ifc.py b/src/ifc5d/test/test_csv2ifc.py index 7dc1bbd718..fc31e9d86e 100644 --- a/src/ifc5d/test/test_csv2ifc.py +++ b/src/ifc5d/test/test_csv2ifc.py @@ -26,7 +26,6 @@ import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.cost -import ifcopenshell.util.element import pytest diff --git a/src/ifccsv/ifccsv.py b/src/ifccsv/ifccsv.py index 341fa186e7..f6d3157f81 100755 --- a/src/ifccsv/ifccsv.py +++ b/src/ifccsv/ifccsv.py @@ -29,14 +29,11 @@ from statistics import mean from typing import Literal, Optional, Union import ifcopenshell -import ifcopenshell.util.element -import ifcopenshell.util.schema import ifcopenshell.util.selector try: from odf.namespaces import OFFICENS - from odf.opendocument import OpenDocumentSpreadsheet, load - from odf.style import Style, TableCellProperties + from odf.opendocument import load from odf.table import Table, TableCell, TableRow from odf.text import P except: diff --git a/src/ifccsv/pyproject.toml b/src/ifccsv/pyproject.toml index 4485d411e5..c012decd23 100644 --- a/src/ifccsv/pyproject.toml +++ b/src/ifccsv/pyproject.toml @@ -26,3 +26,9 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools] py-modules = ["ifccsv"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifcpatch/bootstrap.py b/src/ifcpatch/bootstrap.py index 368d7b5cff..b4fd470b49 100644 --- a/src/ifcpatch/bootstrap.py +++ b/src/ifcpatch/bootstrap.py @@ -16,11 +16,4 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell.util.element -import ifcopenshell.util.schema -import ifcopenshell.util.selector -import ifcpatch.__main__ -import ifcpatch.recipes -import toposort -import ifcpatch diff --git a/src/ifcpatch/ifcpatch/__init__.py b/src/ifcpatch/ifcpatch/__init__.py index 7ea668d55e..c279bfea1c 100644 --- a/src/ifcpatch/ifcpatch/__init__.py +++ b/src/ifcpatch/ifcpatch/__init__.py @@ -18,7 +18,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import collections import importlib import importlib.util import inspect diff --git a/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py b/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py index 8067d2e718..d24aec34e4 100644 --- a/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py +++ b/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py @@ -19,9 +19,7 @@ import csv import os -from itertools import cycle -import ifcopenshell import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.document diff --git a/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py b/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py index 65f48f899d..8045490181 100644 --- a/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py +++ b/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import typing from logging import Logger from typing import Union diff --git a/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py b/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py index 9ec3f52a6a..c659c38c64 100644 --- a/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py +++ b/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import typing from logging import Logger from typing import Union diff --git a/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py b/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py index e1f6664cd0..d92f794959 100644 --- a/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py +++ b/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import typing from logging import Logger from typing import Union diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py b/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py index 6b3554b192..3b5774bfcb 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py @@ -21,10 +21,6 @@ from logging import Logger from typing import Union import ifcopenshell -import ifcopenshell.api -import ifcopenshell.api.owner.settings -import ifcopenshell.util.element -import ifcopenshell.util.pset import ifcopenshell.util.unit import ifcpatch diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py b/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py index 8471ed28f3..0d10de9bae 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell import ifcopenshell.guid diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py b/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py index a9df2c93c4..3b3b54cac4 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py @@ -20,9 +20,7 @@ from logging import Logger from typing import Union import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.pset -import ifcopenshell.util.element import ifcopenshell.util.pset diff --git a/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py index ea169f2967..4ae36f26b8 100644 --- a/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py +++ b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py @@ -16,7 +16,6 @@ # 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 31f1fb4140..6f88f820be 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py @@ -20,7 +20,6 @@ from logging import Logger from typing import Union import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.project import ifcopenshell.guid import ifcopenshell.util.selector diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py index 5df98c4ab4..634a8fb796 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py @@ -17,13 +17,8 @@ # along with IfcPatch. If not, see . -import json -import os -import re import tempfile -import time -import ifcopenshell import ifcopenshell.util.element try: diff --git a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py index cf602bab0a..c2523c7e8f 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py +++ b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py @@ -18,8 +18,6 @@ import logging -import math -import os from typing import Union import ifcopenshell diff --git a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py index c6ea871c7b..2245f8c0df 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py +++ b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py @@ -18,7 +18,6 @@ import logging -import ifcopenshell class Patcher: @@ -70,7 +69,6 @@ class Patcher: def patch(self) -> None: import bonsai.tool as tool import bpy - import ifcopenshell import ifcopenshell.util.element from mathutils import Matrix, Vector diff --git a/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py b/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py index d6dc49be18..642afb6e8c 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py +++ b/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py @@ -21,9 +21,7 @@ import logging from typing import Optional import ifcopenshell -import ifcopenshell.util.schema import ifcopenshell.util.shape_builder -import ifcopenshell.util.unit class Patcher: @@ -167,8 +165,6 @@ class Patcher: import bpy import ifcopenshell.api.geometry import ifcopenshell.api.root - import ifcopenshell.api.spatial - import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.representation @@ -234,11 +230,8 @@ class Patcher: import bmesh import bonsai.tool as tool - import bpy import ifcopenshell.api.geometry import ifcopenshell.api.root - import ifcopenshell.api.spatial - import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.representation @@ -284,11 +277,8 @@ class Patcher: import bmesh import bonsai.tool as tool - import bpy import ifcopenshell.api.geometry import ifcopenshell.api.root - import ifcopenshell.api.spatial - import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.representation from mathutils import Matrix diff --git a/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py b/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py index 1ec5b331de..1ec871160a 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py +++ b/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py @@ -16,7 +16,6 @@ # 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/FixRevitTINs.py b/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py index 872b1a0091..4d2eb030d5 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py +++ b/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py @@ -19,7 +19,6 @@ import logging -import ifcopenshell class Patcher: diff --git a/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py b/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py index 74744f3487..f7e294898a 100644 --- a/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py +++ b/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py @@ -21,9 +21,7 @@ import itertools import json import logging import multiprocessing -import os import re -import tempfile import time import typing from pathlib import Path diff --git a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py index 2c8385066b..38b01135b3 100644 --- a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py +++ b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py @@ -20,7 +20,6 @@ from logging import Logger from typing import Any import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.type import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/Migrate.py b/src/ifcpatch/ifcpatch/recipes/Migrate.py index 6b5c18ff11..627342f096 100644 --- a/src/ifcpatch/ifcpatch/recipes/Migrate.py +++ b/src/ifcpatch/ifcpatch/recipes/Migrate.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import typing from logging import Logger from typing import Union diff --git a/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py b/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py index a575fc4eac..7b8f122482 100644 --- a/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py +++ b/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py @@ -19,7 +19,6 @@ import math import typing -import ifcopenshell import ifcopenshell.util.placement import numpy as np from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcpatch/ifcpatch/recipes/Optimise.py b/src/ifcpatch/ifcpatch/recipes/Optimise.py index 79699ae2e6..b0043a7299 100644 --- a/src/ifcpatch/ifcpatch/recipes/Optimise.py +++ b/src/ifcpatch/ifcpatch/recipes/Optimise.py @@ -17,7 +17,6 @@ # along with IfcPatch. If not, see . import ifcopenshell -import ifcopenshell.util.element class Patcher: diff --git a/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py b/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py index cd3a4fb523..9af1afc950 100644 --- a/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py +++ b/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py @@ -1,4 +1,3 @@ -import typing from logging import Logger from typing import Union diff --git a/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py b/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py index 641ba928b1..1414464fcd 100644 --- a/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py +++ b/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py @@ -17,7 +17,7 @@ # along with IfcPatch. If not, see . import logging -from typing import Literal, Optional, Union +from typing import Literal, Union import ifcopenshell import numpy as np diff --git a/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py b/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py index 0f7c3933b4..9bd751e763 100644 --- a/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py +++ b/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py @@ -19,9 +19,7 @@ import logging import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.geometry -import ifcopenshell.util import ifcopenshell.util.element import ifcopenshell.util.placement import numpy as np diff --git a/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py b/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py index 72218e5ecf..bd8706f9e1 100644 --- a/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py +++ b/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py @@ -18,7 +18,6 @@ import typing -import ifcopenshell import ifcopenshell.api.georeference import ifcopenshell.util.geolocation diff --git a/src/ifcpatch/ifcpatch/recipes/TessellateElements.py b/src/ifcpatch/ifcpatch/recipes/TessellateElements.py index 14ee80aec2..75dc5578d8 100644 --- a/src/ifcpatch/ifcpatch/recipes/TessellateElements.py +++ b/src/ifcpatch/ifcpatch/recipes/TessellateElements.py @@ -21,7 +21,6 @@ from logging import Logger from typing import Union import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.geom import ifcopenshell.util.representation diff --git a/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py b/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py index e7a1ad9eb1..67dc3da646 100644 --- a/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py +++ b/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py @@ -20,7 +20,6 @@ from logging import Logger import ifcopenshell import ifcopenshell.api.pset -import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.selector diff --git a/src/ifcpatch/pyproject.toml b/src/ifcpatch/pyproject.toml index 72ec9ca3f0..22cf2ec3c5 100644 --- a/src/ifcpatch/pyproject.toml +++ b/src/ifcpatch/pyproject.toml @@ -31,3 +31,11 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools.packages.find] include = ["ifcpatch*"] exclude = ["test*"] + +[tool.ruff] +extend = "../../pyproject.toml" + +[tool.ruff.lint] +select = [ + "F401", # unused imports +] diff --git a/src/ifcpatch/test/test_ConvertLengthUnit.py b/src/ifcpatch/test/test_ConvertLengthUnit.py index a4f586512f..6fdf2668ec 100644 --- a/src/ifcpatch/test/test_ConvertLengthUnit.py +++ b/src/ifcpatch/test/test_ConvertLengthUnit.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.unit diff --git a/src/ifcpatch/test/test_ExtractElements.py b/src/ifcpatch/test/test_ExtractElements.py index fe2e9350dd..8d7d4021c6 100644 --- a/src/ifcpatch/test/test_ExtractElements.py +++ b/src/ifcpatch/test/test_ExtractElements.py @@ -19,7 +19,6 @@ import os import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.root import ifcopenshell.api.spatial diff --git a/src/ifcpatch/test/test_Ifc2Sql.py b/src/ifcpatch/test/test_Ifc2Sql.py index 79257a69c3..49e38c08fe 100644 --- a/src/ifcpatch/test/test_Ifc2Sql.py +++ b/src/ifcpatch/test/test_Ifc2Sql.py @@ -20,15 +20,6 @@ import tempfile from pathlib import Path import ifcopenshell -import ifcopenshell.api.context -import ifcopenshell.api.geometry -import ifcopenshell.api.georeference -import ifcopenshell.geom -import ifcopenshell.util.geolocation -import ifcopenshell.util.placement -import ifcopenshell.util.representation -import ifcopenshell.util.shape -import ifcopenshell.util.shape_builder import ifcpatch diff --git a/src/ifcpatch/test/test_MergeDuplicateTypes.py b/src/ifcpatch/test/test_MergeDuplicateTypes.py index 439f7a0c06..565a62517b 100644 --- a/src/ifcpatch/test/test_MergeDuplicateTypes.py +++ b/src/ifcpatch/test/test_MergeDuplicateTypes.py @@ -16,17 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os -import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.representation -import pytest import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_Migrate.py b/src/ifcpatch/test/test_Migrate.py index 319e01d91b..85e60ff09f 100644 --- a/src/ifcpatch/test/test_Migrate.py +++ b/src/ifcpatch/test/test_Migrate.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_RegenerateGlobalIds.py b/src/ifcpatch/test/test_RegenerateGlobalIds.py index e51e4c7a9c..4858b6a7b0 100644 --- a/src/ifcpatch/test/test_RegenerateGlobalIds.py +++ b/src/ifcpatch/test/test_RegenerateGlobalIds.py @@ -16,13 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os -import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.root -import ifcopenshell.util.element -import pytest import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_ResetSpatialElementLocations.py b/src/ifcpatch/test/test_ResetSpatialElementLocations.py index 5d446c9128..d0dc385015 100644 --- a/src/ifcpatch/test/test_ResetSpatialElementLocations.py +++ b/src/ifcpatch/test/test_ResetSpatialElementLocations.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.geometry import ifcopenshell.api.root diff --git a/src/ifcpatch/test/test_SetFalseOrigin.py b/src/ifcpatch/test/test_SetFalseOrigin.py index 1357ec39b0..e15e8684fb 100644 --- a/src/ifcpatch/test/test_SetFalseOrigin.py +++ b/src/ifcpatch/test/test_SetFalseOrigin.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry diff --git a/src/ifcpatch/test/test_TesselateElements.py b/src/ifcpatch/test/test_TesselateElements.py index 7acdc899a7..9e15c35f72 100644 --- a/src/ifcpatch/test/test_TesselateElements.py +++ b/src/ifcpatch/test/test_TesselateElements.py @@ -16,14 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.geometry -import ifcopenshell.api.profile import ifcopenshell.api.root import ifcopenshell.api.unit -import ifcopenshell.geom -import ifcopenshell.util.element import ifcopenshell.util.representation from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcpatch/test/test_UnsharePsets.py b/src/ifcpatch/test/test_UnsharePsets.py index fc40bdb74d..ae09ed879b 100644 --- a/src/ifcpatch/test/test_UnsharePsets.py +++ b/src/ifcpatch/test/test_UnsharePsets.py @@ -18,7 +18,6 @@ import ifcopenshell import ifcopenshell.api.pset -import ifcopenshell.geom import ifcopenshell.util.element import ifcpatch diff --git a/src/ifctester/ifctester/__init__.py b/src/ifctester/ifctester/__init__.py index edb1db90e4..46b38aa82e 100644 --- a/src/ifctester/ifctester/__init__.py +++ b/src/ifctester/ifctester/__init__.py @@ -16,6 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcTester. If not, see . -from .ids import open +from .ids import open as open __version__ = version = "0.0.0" diff --git a/src/ifctester/ifctester/ids.py b/src/ifctester/ifctester/ids.py index d7403e2594..d6ae3bd44a 100644 --- a/src/ifctester/ifctester/ids.py +++ b/src/ifctester/ifctester/ids.py @@ -28,16 +28,10 @@ from xmlschema import XMLSchema, etree_tostring from xmlschema.validators.exceptions import XMLSchemaValidationError from .facet import ( - Attribute, Cardinality, - Classification, Entity, Facet, FacetFailure, - Material, - PartOf, - Property, - Restriction, get_pset, get_psets, ) diff --git a/src/ifctester/pyproject.toml b/src/ifctester/pyproject.toml index c174854190..1be89ed68b 100644 --- a/src/ifctester/pyproject.toml +++ b/src/ifctester/pyproject.toml @@ -32,3 +32,9 @@ exclude = ["test*"] [tool.setuptools.package-data] "*" = ["*.*"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifctester/test/ids_doc_generator.py b/src/ifctester/test/ids_doc_generator.py index a8323fbeed..3788afebbc 100644 --- a/src/ifctester/test/ids_doc_generator.py +++ b/src/ifctester/test/ids_doc_generator.py @@ -24,7 +24,6 @@ from pathlib import Path from xml.dom.minidom import parseString import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry diff --git a/src/ifctester/test/test_facet.py b/src/ifctester/test/test_facet.py index 2e0a16ec85..a8ace9622a 100644 --- a/src/ifctester/test/test_facet.py +++ b/src/ifctester/test/test_facet.py @@ -20,7 +20,6 @@ import uuid import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.classification import ifcopenshell.api.group diff --git a/src/ifctester/test/test_ids.py b/src/ifctester/test/test_ids.py index 0a851a355c..9410d73948 100644 --- a/src/ifctester/test/test_ids.py +++ b/src/ifctester/test/test_ids.py @@ -20,7 +20,6 @@ import os from typing import Optional import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.material import pytest import xmlschema diff --git a/src/ifctester/webapp/public/worker/api.py b/src/ifctester/webapp/public/worker/api.py index dafc61c646..4489d358d5 100644 --- a/src/ifctester/webapp/public/worker/api.py +++ b/src/ifctester/webapp/public/worker/api.py @@ -1,10 +1,7 @@ -import xml.etree.ElementTree as ET import ifcopenshell -import ifcopenshell.util import ifcopenshell.util.attribute import ifcopenshell.util.pset -import ifcopenshell.util.schema from ifctester.ids import Ids, IdsXmlValidationError, get_schema from xmlschema.validators.exceptions import XMLSchemaValidationError diff --git a/test/run.py b/test/run.py index 320b8decc4..ad1880166f 100644 --- a/test/run.py +++ b/test/run.py @@ -28,7 +28,6 @@ import inspect import os -import shutil import subprocess import sys from urllib.request import urlretrieve From 6d4eb06d89b845d2c698f411d8e4ad0c03f96568 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 12:15:22 +0500 Subject: [PATCH 066/171] black . --- nix/build-all.py | 2 +- src/bonsai/bonsai/tool/system.py | 12 ++++++------ src/bonsai/test/core/test_system.py | 4 ++-- src/bonsai/test/tool/test_system.py | 1 + src/ifc4d/ifc4d/ifc2p6.py | 1 - src/ifcpatch/bootstrap.py | 2 -- .../ifcpatch/recipes/FixArchiCADToRevitSpaces.py | 1 - src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py | 1 - src/ifctester/webapp/public/worker/api.py | 1 - 9 files changed, 10 insertions(+), 15 deletions(-) diff --git a/nix/build-all.py b/nix/build-all.py index b60ab1adbd..2a4318dc35 100644 --- a/nix/build-all.py +++ b/nix/build-all.py @@ -1178,7 +1178,7 @@ if "cgal" in targets: gmp_args.extend(("--disable-assembly", "--enable-cxx")) mpfr_args.extend(("--host", "none")) elif "x86" in arch: - gmp_args.append("--enable-fat") # See issues #7458 #7556 + gmp_args.append("--enable-fat") # See issues #7458 #7556 OLD_CC = None if MAC_CROSS_COMPILE_INTEL: diff --git a/src/bonsai/bonsai/tool/system.py b/src/bonsai/bonsai/tool/system.py index 3566dbd863..9df19e5619 100644 --- a/src/bonsai/bonsai/tool/system.py +++ b/src/bonsai/bonsai/tool/system.py @@ -112,20 +112,20 @@ class System(bonsai.core.tool.System): def create_port_at_cursor(cls, element: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance: ifc_file = tool.Ifc.get() element_obj = tool.Ifc.get_object(element) - + port = ifcopenshell.api.system.add_port(ifc_file, element=element) port.FlowDirection = "NOTDEFINED" port.PredefinedType = "USERDEFINED" - + systems = ifcopenshell.util.system.get_element_systems(element) system = systems[0] if systems else None port.SystemType = getattr(system, "PredefinedType", None) or "USERDEFINED" - + matrix = element_obj.matrix_world.copy() matrix.translation = bpy.context.scene.cursor.matrix.translation - + ifcopenshell.api.geometry.edit_object_placement(ifc_file, product=port, matrix=matrix, is_si=True) - + return port @classmethod @@ -218,7 +218,7 @@ class System(bonsai.core.tool.System): for collection in obj.users_collection: target_collection = collection break - + if target_collection: for port_obj in ifc_importer.added_data.values(): if isinstance(port_obj, bpy.types.Object): diff --git a/src/bonsai/test/core/test_system.py b/src/bonsai/test/core/test_system.py index 4612e14d69..1d19189c3b 100644 --- a/src/bonsai/test/core/test_system.py +++ b/src/bonsai/test/core/test_system.py @@ -153,8 +153,8 @@ class TestAddPort: def test_run(self, ifc, system): system.get_ports("element").should_be_called().will_return(["port"]) system.load_ports("element", ["port"]).should_be_called() - #system.create_empty_at_cursor_with_element_orientation("element").should_be_called().will_return("obj") - #system.run_root_assign_class(obj="obj", ifc_class="IfcDistributionPort", should_add_representation=False).should_be_called().will_return("port") + # system.create_empty_at_cursor_with_element_orientation("element").should_be_called().will_return("obj") + # system.run_root_assign_class(obj="obj", ifc_class="IfcDistributionPort", should_add_representation=False).should_be_called().will_return("port") system.create_port_at_cursor("element").should_be_called().will_return("port") system.load_ports("element", ["port"]).should_be_called() subject.add_port(ifc, system, element="element") diff --git a/src/bonsai/test/tool/test_system.py b/src/bonsai/test/tool/test_system.py index ba20305140..1a18811c37 100644 --- a/src/bonsai/test/tool/test_system.py +++ b/src/bonsai/test/tool/test_system.py @@ -103,6 +103,7 @@ class TestCreateEmptyAtCursorWithElementOrientation(NewFile): obj = subject.create_empty_at_cursor_with_element_orientation(element) assert obj.matrix_world == bpy.context.scene.cursor.matrix + class TestCreatePortAtCursor(NewFile): def test_run(self): assert bpy.context.scene diff --git a/src/ifc4d/ifc4d/ifc2p6.py b/src/ifc4d/ifc4d/ifc2p6.py index 9294e91cbf..a4634ca372 100644 --- a/src/ifc4d/ifc4d/ifc2p6.py +++ b/src/ifc4d/ifc4d/ifc2p6.py @@ -25,7 +25,6 @@ import ifcopenshell.util.date import ifcopenshell.util.sequence - class Ifc2P6: def __init__(self): self.xml = None diff --git a/src/ifcpatch/bootstrap.py b/src/ifcpatch/bootstrap.py index b4fd470b49..f703e25969 100644 --- a/src/ifcpatch/bootstrap.py +++ b/src/ifcpatch/bootstrap.py @@ -15,5 +15,3 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . - - diff --git a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py index 2245f8c0df..38a7a2950e 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py +++ b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py @@ -19,7 +19,6 @@ import logging - class Patcher: def __init__(self, file: None, logger: logging.Logger, filepath: str): """Allow ArchiCAD IFC spaces to open as Revit rooms diff --git a/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py b/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py index 4d2eb030d5..6c083456e9 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py +++ b/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py @@ -20,7 +20,6 @@ import logging - class Patcher: def __init__(self, file: None, logger: logging.Logger, filepath: str, is_solid: bool = True): """Fix missing or spot-coordinate bugged TINs loading in Revit diff --git a/src/ifctester/webapp/public/worker/api.py b/src/ifctester/webapp/public/worker/api.py index 4489d358d5..ebf4bbe01a 100644 --- a/src/ifctester/webapp/public/worker/api.py +++ b/src/ifctester/webapp/public/worker/api.py @@ -1,4 +1,3 @@ - import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.pset From 44f0a4a39b74c2b9fde18c16436db71abd4ef196 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 13:15:11 +0500 Subject: [PATCH 067/171] pyproject.toml - simplify cmake formatter command Since the latest gersemi version, it now respects gitignore. --- pyproject.toml | 2 +- win/patches/.gersemirc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 win/patches/.gersemirc diff --git a/pyproject.toml b/pyproject.toml index b932db42a1..13f3b15ba6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,4 +82,4 @@ black = "black ." format.sequence = ["black", "ruff-main", "ruff-old"] -cmake-format = "gersemi cmake src --in-place" +cmake-format = "gersemi . --in-place" diff --git a/win/patches/.gersemirc b/win/patches/.gersemirc new file mode 100644 index 0000000000..f64d72913d --- /dev/null +++ b/win/patches/.gersemirc @@ -0,0 +1 @@ +disable_formatting: true From dbb4e91d55e02c7c12f7f6c5183c12181386990b Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 13:00:09 +0500 Subject: [PATCH 068/171] apply cmake file formatting --- cmake/IfcOpenShellConfig.cmake.in | 14 ++++++---- cmake/cmake_uninstall.cmake.in | 10 ++++--- docs/cpp-api/CMakeLists.txt | 43 +++++++++++++----------------- src/ifcgeom/CMakeLists.txt | 8 +----- src/ifcgeom/kernels/CMakeLists.txt | 5 +--- 5 files changed, 37 insertions(+), 43 deletions(-) diff --git a/cmake/IfcOpenShellConfig.cmake.in b/cmake/IfcOpenShellConfig.cmake.in index 95df6180f9..e5e5d350b8 100644 --- a/cmake/IfcOpenShellConfig.cmake.in +++ b/cmake/IfcOpenShellConfig.cmake.in @@ -13,7 +13,14 @@ include(CMakeFindDependencyMacro) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_RUNTIME OFF) set(Boost_USE_MULTITHREADED ON) -set(Boost_COMPONENTS system program_options regex thread date_time iostreams) +set(Boost_COMPONENTS + system + program_options + regex + thread + date_time + iostreams +) find_dependency(Boost CONFIG COMPONENTS ${Boost_COMPONENTS}) find_dependency(Eigen3 CONFIG) @@ -39,7 +46,6 @@ if(IFCOPENSHELL_IFCXML) find_dependency(LibXml2 CONFIG) endif() - if(IFCOPENSHELL_WITH_CGAL) find_dependency(CGAL CONFIG) endif() @@ -48,9 +54,7 @@ if(IFCOPENSHELL_WITH_OPENCASCADE) find_dependency(OpenCASCADE CONFIG) if(OpenCASCADE_VERSION VERSION_LESS "7.7.0") # cmake configs < 7.7.0 were not adding include directories to targets automatically. - set_target_properties(TKernel PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${OpenCASCADE_INCLUDE_DIR}" - ) + set_target_properties(TKernel PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${OpenCASCADE_INCLUDE_DIR}") endif() endif() diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index 04da07edd6..012b1c0859 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -29,9 +29,13 @@ foreach(file ${files}) if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") exec_program( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" - OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval + "@CMAKE_COMMAND@" + ARGS + "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE + rm_out + RETURN_VALUE + rm_retval ) if(NOT "${rm_retval}" STREQUAL 0) diff --git a/docs/cpp-api/CMakeLists.txt b/docs/cpp-api/CMakeLists.txt index 0b729355e5..80593dd220 100644 --- a/docs/cpp-api/CMakeLists.txt +++ b/docs/cpp-api/CMakeLists.txt @@ -1,14 +1,10 @@ #Look for an executable called sphinx-build -find_program(SPHINX_EXECUTABLE - NAMES sphinx-build - DOC "Path to sphinx-build executable") +find_program(SPHINX_EXECUTABLE NAMES sphinx-build DOC "Path to sphinx-build executable") include(FindPackageHandleStandardArgs) #Handle standard arguments to find_package like REQUIRED and QUIET -find_package_handle_standard_args(Sphinx - "Failed to find sphinx-build executable" - SPHINX_EXECUTABLE) +find_package_handle_standard_args(Sphinx "Failed to find sphinx-build executable" SPHINX_EXECUTABLE) find_package(Doxygen REQUIRED) #find_package(Sphinx REQUIRED) @@ -16,25 +12,24 @@ find_package(Doxygen REQUIRED) set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}) set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/docs/sphinx) -MESSAGE(STATUS "SPHINX BUILD ${CMAKE_CURRENT_BINARY_DIR}") +message(STATUS "SPHINX BUILD ${CMAKE_CURRENT_BINARY_DIR}") file(MAKE_DIRECTORY ./output/doxygen) -if (DOXYGEN_FOUND) +if(DOXYGEN_FOUND) + add_custom_target( + Sphinx + ALL + COMMAND ${SPHINX_EXECUTABLE} -v -T -b html ${SPHINX_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/output + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output + COMMENT "Generating documentation with Sphinx" + ) -add_custom_target(Sphinx ALL - COMMAND - ${SPHINX_EXECUTABLE} -v -T -b html - ${SPHINX_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/output - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output - COMMENT "Generating documentation with Sphinx") - -# add_custom_target(ifcopenshell_python_docs ALL - # COMMAND make html - # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs - # OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs - # COMMENT "Generating documentation with Sphinx") - -else (DOXYGEN_FOUND) - message("Doxygen need to be installed to generate the doxygen documentation") -endif (DOXYGEN_FOUND) + # add_custom_target(ifcopenshell_python_docs ALL + # COMMAND make html + # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs + # OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs + # COMMENT "Generating documentation with Sphinx") +else(DOXYGEN_FOUND) + message("Doxygen need to be installed to generate the doxygen documentation") +endif(DOXYGEN_FOUND) diff --git a/src/ifcgeom/CMakeLists.txt b/src/ifcgeom/CMakeLists.txt index 4bacbf2f72..31bb2e7bce 100644 --- a/src/ifcgeom/CMakeLists.txt +++ b/src/ifcgeom/CMakeLists.txt @@ -29,13 +29,7 @@ endif() find_package(Eigen3 REQUIRED) -target_link_libraries( - IfcGeom - ${mapping_libraries} - ${CMAKE_THREAD_LIBS_INIT} - "Eigen3::Eigen" - ${CGAL_LIBRARIES} -) +target_link_libraries(IfcGeom ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen" ${CGAL_LIBRARIES}) if(WITH_OPENCASCADE) target_link_libraries(IfcGeom TKernel) diff --git a/src/ifcgeom/kernels/CMakeLists.txt b/src/ifcgeom/kernels/CMakeLists.txt index 73882d2c71..6775a8f378 100644 --- a/src/ifcgeom/kernels/CMakeLists.txt +++ b/src/ifcgeom/kernels/CMakeLists.txt @@ -43,7 +43,4 @@ endforeach() set(kernel_libraries ${kernel_libraries} PARENT_SCOPE) -install( - FILES ifc_geomlibrary_api.h - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcgeom/kernels/" -) +install(FILES ifc_geomlibrary_api.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcgeom/kernels/") From c4c1e2ebf9f4757dd1eb705dfbc4ff24bd09549c Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 15:52:03 +0500 Subject: [PATCH 069/171] cmake_uninstall - simplify by using common variable --- cmake/cmake_uninstall.cmake.in | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index 012b1c0859..d6e6464f87 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -25,13 +25,14 @@ file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) string(REGEX REPLACE "\n" ";" files "${files}") foreach(file ${files}) - message(STATUS "Uninstalling $ENV{DESTDIR}${file}") + set(filepath "$ENV{DESTDIR}${file}") + message(STATUS "Uninstalling ${filepath}") - if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") + if(IS_SYMLINK "${filepath}" OR EXISTS "${filepath}") exec_program( "@CMAKE_COMMAND@" ARGS - "-E remove \"$ENV{DESTDIR}${file}\"" + "-E remove \"${filepath}\"" OUTPUT_VARIABLE rm_out RETURN_VALUE @@ -39,9 +40,9 @@ foreach(file ${files}) ) if(NOT "${rm_retval}" STREQUAL 0) - message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") + message(FATAL_ERROR "Problem when removing ${filepath}") endif() - else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") - message(STATUS "File $ENV{DESTDIR}${file} does not exist.") + else(IS_SYMLINK "${filepath}" OR EXISTS "${filepath}") + message(STATUS "File ${filepath} does not exist.") endif() endforeach() From c6766cefb7b7457a2b40f867685050b0fadeaf28 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 16:01:24 +0500 Subject: [PATCH 070/171] cmake_uninstall - speed up the process and fix cmake warnings --- cmake/cmake_uninstall.cmake.in | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index d6e6464f87..cb15e0c494 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -29,19 +29,7 @@ foreach(file ${files}) message(STATUS "Uninstalling ${filepath}") if(IS_SYMLINK "${filepath}" OR EXISTS "${filepath}") - exec_program( - "@CMAKE_COMMAND@" - ARGS - "-E remove \"${filepath}\"" - OUTPUT_VARIABLE - rm_out - RETURN_VALUE - rm_retval - ) - - if(NOT "${rm_retval}" STREQUAL 0) - message(FATAL_ERROR "Problem when removing ${filepath}") - endif() + file(REMOVE "${filepath}") else(IS_SYMLINK "${filepath}" OR EXISTS "${filepath}") message(STATUS "File ${filepath} does not exist.") endif() From bc675ef9b25dffceb9c72df1bc9bf0d79046db72 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 16:02:30 +0500 Subject: [PATCH 071/171] cmake_uninstall - fix always skipped if-block condition --- cmake/cmake_uninstall.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index cb15e0c494..aa91cd810d 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -30,7 +30,7 @@ foreach(file ${files}) if(IS_SYMLINK "${filepath}" OR EXISTS "${filepath}") file(REMOVE "${filepath}") - else(IS_SYMLINK "${filepath}" OR EXISTS "${filepath}") + else(NOT EXISTS "${filepath}") message(STATUS "File ${filepath} does not exist.") endif() endforeach() From 1319391a6b5034e89da9ed6dab481f5e132c6294 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 16:04:56 +0500 Subject: [PATCH 072/171] ci-bonsai-daily - enable Python 3.13 build Since it's coming in Blender 5.1 which is soon to go Beta (at 4 Feb). --- .github/workflows/ci-bonsai-daily.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-bonsai-daily.yml b/.github/workflows/ci-bonsai-daily.yml index eea09da5a7..8beddfe668 100644 --- a/.github/workflows/ci-bonsai-daily.yml +++ b/.github/workflows/ci-bonsai-daily.yml @@ -35,7 +35,7 @@ jobs: strategy: fail-fast: false matrix: - pyver: [py311, py312] + pyver: [py311, py312, py313] config: - { name: "Windows Build", From 953c5fddc6f1cf385081021dd4f0d51a4fe9567a Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 17:11:12 +0500 Subject: [PATCH 073/171] bonsai - sort imports --- src/bcf/bcf/agnostic/topic.py | 3 +- src/bcf/tests/conftest.py | 1 + src/bcf/tests/v2/test_bcf_xml.py | 3 +- src/bcf/tests/v2/test_example_files.py | 3 +- src/bcf/tests/v2/test_ifcclash_api.py | 1 + src/bcf/tests/v3/test_bcf_xml.py | 3 +- src/bcf/tests/v3/test_example_files.py | 3 +- src/bcf/tests/v3/test_ifcclash_api.py | 1 + src/bonsai/bonsai/__init__.py | 13 ++-- src/bonsai/bonsai/bim/__init__.py | 12 +-- src/bonsai/bonsai/bim/data/webui/sioserver.py | 12 +-- src/bonsai/bonsai/bim/export_ifc.py | 23 +++--- src/bonsai/bonsai/bim/handler.py | 27 ++++--- src/bonsai/bonsai/bim/helper.py | 19 +++-- src/bonsai/bonsai/bim/ifc.py | 22 +++--- src/bonsai/bonsai/bim/import_ifc.py | 29 +++---- .../bonsai/bim/module/aggregate/__init__.py | 3 +- .../bonsai/bim/module/aggregate/data.py | 8 +- .../bonsai/bim/module/aggregate/decorator.py | 3 +- .../bonsai/bim/module/aggregate/operator.py | 6 +- .../bonsai/bim/module/aggregate/prop.py | 27 ++++--- src/bonsai/bonsai/bim/module/aggregate/ui.py | 5 +- .../bonsai/bim/module/alignment/operator.py | 24 +++--- .../bonsai/bim/module/attribute/__init__.py | 3 +- .../bonsai/bim/module/attribute/data.py | 1 + .../bonsai/bim/module/attribute/operator.py | 11 ++- .../bonsai/bim/module/attribute/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/attribute/ui.py | 9 ++- .../bonsai/bim/module/augin/__init__.py | 3 +- .../bonsai/bim/module/augin/operator.py | 10 ++- src/bonsai/bonsai/bim/module/augin/ui.py | 1 + src/bonsai/bonsai/bim/module/bcf/__init__.py | 3 +- src/bonsai/bonsai/bim/module/bcf/bcfstore.py | 6 +- src/bonsai/bonsai/bim/module/bcf/operator.py | 40 +++++----- src/bonsai/bonsai/bim/module/bcf/prop.py | 34 +++++---- src/bonsai/bonsai/bim/module/bcf/ui.py | 14 ++-- .../bonsai/bim/module/boundary/__init__.py | 3 +- src/bonsai/bonsai/bim/module/boundary/data.py | 1 + .../bonsai/bim/module/boundary/decorator.py | 7 +- .../bonsai/bim/module/boundary/operator.py | 34 +++++---- src/bonsai/bonsai/bim/module/boundary/prop.py | 18 +++-- src/bonsai/bonsai/bim/module/boundary/ui.py | 1 + .../bonsai/bim/module/brick/__init__.py | 3 +- src/bonsai/bonsai/bim/module/brick/data.py | 3 +- .../bonsai/bim/module/brick/operator.py | 8 +- src/bonsai/bonsai/bim/module/brick/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/brick/ui.py | 3 +- src/bonsai/bonsai/bim/module/bsdd/__init__.py | 3 +- src/bonsai/bonsai/bim/module/bsdd/data.py | 3 +- src/bonsai/bonsai/bim/module/bsdd/operator.py | 6 +- src/bonsai/bonsai/bim/module/bsdd/prop.py | 26 ++++--- src/bonsai/bonsai/bim/module/bsdd/ui.py | 18 +++-- src/bonsai/bonsai/bim/module/cad/__init__.py | 1 + src/bonsai/bonsai/bim/module/cad/operator.py | 17 +++-- src/bonsai/bonsai/bim/module/cad/prop.py | 8 +- src/bonsai/bonsai/bim/module/cad/workspace.py | 8 +- .../bonsai/bim/module/clash/__init__.py | 3 +- src/bonsai/bonsai/bim/module/clash/data.py | 4 +- .../bonsai/bim/module/clash/decorator.py | 9 ++- .../bonsai/bim/module/clash/operator.py | 22 +++--- src/bonsai/bonsai/bim/module/clash/prop.py | 22 +++--- src/bonsai/bonsai/bim/module/clash/ui.py | 20 +++-- .../bim/module/classification/__init__.py | 3 +- .../bonsai/bim/module/classification/data.py | 6 +- .../bim/module/classification/operator.py | 7 +- .../bonsai/bim/module/classification/prop.py | 25 +++--- .../bonsai/bim/module/classification/ui.py | 33 ++++---- .../bonsai/bim/module/constraint/__init__.py | 3 +- .../bonsai/bim/module/constraint/data.py | 3 +- .../bonsai/bim/module/constraint/operator.py | 4 +- .../bonsai/bim/module/constraint/prop.py | 24 +++--- src/bonsai/bonsai/bim/module/constraint/ui.py | 17 +++-- .../bonsai/bim/module/context/__init__.py | 3 +- src/bonsai/bonsai/bim/module/context/data.py | 8 +- .../bonsai/bim/module/context/operator.py | 3 +- src/bonsai/bonsai/bim/module/context/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/context/ui.py | 1 + src/bonsai/bonsai/bim/module/cost/__init__.py | 3 +- src/bonsai/bonsai/bim/module/cost/data.py | 6 +- src/bonsai/bonsai/bim/module/cost/operator.py | 14 ++-- src/bonsai/bonsai/bim/module/cost/prop.py | 28 ++++--- src/bonsai/bonsai/bim/module/cost/ui.py | 7 +- .../bonsai/bim/module/covering/__init__.py | 1 + src/bonsai/bonsai/bim/module/covering/prop.py | 3 +- .../bonsai/bim/module/covering/workspace.py | 6 +- .../bonsai/bim/module/covetool/__init__.py | 3 +- .../bonsai/bim/module/covetool/operator.py | 6 +- src/bonsai/bonsai/bim/module/covetool/prop.py | 3 +- src/bonsai/bonsai/bim/module/covetool/ui.py | 9 ++- src/bonsai/bonsai/bim/module/csv/__init__.py | 3 +- src/bonsai/bonsai/bim/module/csv/operator.py | 17 +++-- src/bonsai/bonsai/bim/module/csv/prop.py | 18 +++-- src/bonsai/bonsai/bim/module/csv/ui.py | 3 +- .../bonsai/bim/module/debug/__init__.py | 3 +- .../bonsai/bim/module/debug/operator.py | 30 ++++---- src/bonsai/bonsai/bim/module/debug/prop.py | 18 +++-- src/bonsai/bonsai/bim/module/debug/ui.py | 3 +- src/bonsai/bonsai/bim/module/demo/__init__.py | 3 +- src/bonsai/bonsai/bim/module/demo/operator.py | 3 +- src/bonsai/bonsai/bim/module/demo/prop.py | 12 +-- src/bonsai/bonsai/bim/module/demo/ui.py | 1 + src/bonsai/bonsai/bim/module/diff/__init__.py | 3 +- src/bonsai/bonsai/bim/module/diff/data.py | 4 +- src/bonsai/bonsai/bim/module/diff/operator.py | 6 +- src/bonsai/bonsai/bim/module/diff/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/diff/ui.py | 3 +- .../bonsai/bim/module/document/__init__.py | 3 +- src/bonsai/bonsai/bim/module/document/data.py | 4 +- .../bonsai/bim/module/document/operator.py | 8 +- src/bonsai/bonsai/bim/module/document/prop.py | 23 +++--- src/bonsai/bonsai/bim/module/document/ui.py | 3 +- .../bonsai/bim/module/drawing/__init__.py | 4 +- .../bonsai/bim/module/drawing/annotation.py | 15 ++-- src/bonsai/bonsai/bim/module/drawing/data.py | 16 ++-- .../bonsai/bim/module/drawing/decoration.py | 34 +++++---- .../bonsai/bim/module/drawing/gizmos.py | 24 +++--- .../bonsai/bim/module/drawing/handler.py | 3 +- .../bonsai/bim/module/drawing/helper.py | 16 ++-- .../bonsai/bim/module/drawing/operator.py | 75 ++++++++++-------- src/bonsai/bonsai/bim/module/drawing/prop.py | 50 ++++++------ .../bonsai/bim/module/drawing/scheduler.py | 19 ++--- .../bonsai/bim/module/drawing/shaders.py | 3 +- .../bonsai/bim/module/drawing/sheeter.py | 18 +++-- .../bonsai/bim/module/drawing/svgwriter.py | 35 ++++----- src/bonsai/bonsai/bim/module/drawing/ui.py | 13 ++-- .../bonsai/bim/module/drawing/workspace.py | 12 +-- src/bonsai/bonsai/bim/module/fm/__init__.py | 3 +- src/bonsai/bonsai/bim/module/fm/data.py | 5 +- src/bonsai/bonsai/bim/module/fm/operator.py | 10 ++- src/bonsai/bonsai/bim/module/fm/prop.py | 26 ++++--- src/bonsai/bonsai/bim/module/fm/ui.py | 3 +- .../bonsai/bim/module/geometry/__init__.py | 10 ++- src/bonsai/bonsai/bim/module/geometry/data.py | 6 +- .../bonsai/bim/module/geometry/decorator.py | 14 ++-- .../bonsai/bim/module/geometry/helper.py | 20 ++--- .../bonsai/bim/module/geometry/operator.py | 46 ++++++----- src/bonsai/bonsai/bim/module/geometry/prop.py | 24 +++--- src/bonsai/bonsai/bim/module/geometry/ui.py | 9 ++- .../bim/module/georeference/__init__.py | 3 +- .../bonsai/bim/module/georeference/data.py | 7 +- .../bim/module/georeference/decorator.py | 14 ++-- .../bim/module/georeference/operator.py | 6 +- .../bonsai/bim/module/georeference/prop.py | 20 ++--- .../bonsai/bim/module/georeference/ui.py | 5 +- src/bonsai/bonsai/bim/module/gis/__init__.py | 5 +- src/bonsai/bonsai/bim/module/gis/prop.py | 3 +- .../bonsai/bim/module/group/__init__.py | 3 +- src/bonsai/bonsai/bim/module/group/data.py | 1 + .../bonsai/bim/module/group/operator.py | 4 +- src/bonsai/bonsai/bim/module/group/prop.py | 22 +++--- src/bonsai/bonsai/bim/module/group/ui.py | 7 +- .../bonsai/bim/module/ifcgit/__init__.py | 2 +- src/bonsai/bonsai/bim/module/ifcgit/data.py | 3 +- .../bonsai/bim/module/ifcgit/operator.py | 4 +- src/bonsai/bonsai/bim/module/ifcgit/prop.py | 12 +-- src/bonsai/bonsai/bim/module/ifcgit/ui.py | 10 ++- .../bonsai/bim/module/layer/__init__.py | 3 +- src/bonsai/bonsai/bim/module/layer/data.py | 4 +- .../bonsai/bim/module/layer/operator.py | 4 +- src/bonsai/bonsai/bim/module/layer/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/layer/ui.py | 7 +- .../bonsai/bim/module/library/__init__.py | 3 +- src/bonsai/bonsai/bim/module/library/data.py | 1 + .../bonsai/bim/module/library/operator.py | 3 +- src/bonsai/bonsai/bim/module/library/prop.py | 22 +++--- src/bonsai/bonsai/bim/module/library/ui.py | 7 +- .../bonsai/bim/module/light/__init__.py | 12 +-- src/bonsai/bonsai/bim/module/light/data.py | 3 +- .../bonsai/bim/module/light/decorator.py | 14 ++-- src/bonsai/bonsai/bim/module/light/list.py | 9 ++- .../bonsai/bim/module/light/operator.py | 32 ++++---- src/bonsai/bonsai/bim/module/light/prop.py | 24 +++--- src/bonsai/bonsai/bim/module/light/ui.py | 6 +- .../bonsai/bim/module/material/__init__.py | 3 +- src/bonsai/bonsai/bim/module/material/data.py | 8 +- .../bonsai/bim/module/material/operator.py | 12 +-- src/bonsai/bonsai/bim/module/material/prop.py | 30 ++++---- src/bonsai/bonsai/bim/module/material/ui.py | 14 ++-- src/bonsai/bonsai/bim/module/misc/__init__.py | 3 +- src/bonsai/bonsai/bim/module/misc/operator.py | 12 +-- src/bonsai/bonsai/bim/module/misc/prop.py | 15 ++-- .../bonsai/bim/module/model/__init__.py | 34 ++++----- src/bonsai/bonsai/bim/module/model/array.py | 6 +- .../bonsai/bim/module/model/covering.py | 3 +- src/bonsai/bonsai/bim/module/model/data.py | 12 +-- .../bonsai/bim/module/model/decorator.py | 21 ++--- src/bonsai/bonsai/bim/module/model/door.py | 20 ++--- src/bonsai/bonsai/bim/module/model/grid.py | 12 +-- src/bonsai/bonsai/bim/module/model/handler.py | 3 +- src/bonsai/bonsai/bim/module/model/mep.py | 24 +++--- src/bonsai/bonsai/bim/module/model/opening.py | 37 ++++----- .../bonsai/bim/module/model/polyline.py | 17 +++-- src/bonsai/bonsai/bim/module/model/product.py | 31 ++++---- src/bonsai/bonsai/bim/module/model/profile.py | 27 ++++--- src/bonsai/bonsai/bim/module/model/prop.py | 24 +++--- src/bonsai/bonsai/bim/module/model/railing.py | 13 ++-- src/bonsai/bonsai/bim/module/model/roof.py | 20 ++--- src/bonsai/bonsai/bim/module/model/slab.py | 20 +++-- src/bonsai/bonsai/bim/module/model/space.py | 3 +- src/bonsai/bonsai/bim/module/model/stair.py | 15 +++- .../bim/module/model/sverchok_modifier.py | 14 ++-- src/bonsai/bonsai/bim/module/model/ui.py | 19 +++-- src/bonsai/bonsai/bim/module/model/wall.py | 22 +++--- src/bonsai/bonsai/bim/module/model/window.py | 28 +++---- .../bonsai/bim/module/model/workspace.py | 16 ++-- src/bonsai/bonsai/bim/module/nest/__init__.py | 3 +- src/bonsai/bonsai/bim/module/nest/data.py | 3 +- .../bonsai/bim/module/nest/decorator.py | 3 +- src/bonsai/bonsai/bim/module/nest/operator.py | 3 +- src/bonsai/bonsai/bim/module/nest/prop.py | 22 +++--- src/bonsai/bonsai/bim/module/nest/ui.py | 3 +- .../bonsai/bim/module/owner/__init__.py | 3 +- src/bonsai/bonsai/bim/module/owner/data.py | 6 +- .../bonsai/bim/module/owner/operator.py | 8 +- src/bonsai/bonsai/bim/module/owner/prop.py | 22 +++--- src/bonsai/bonsai/bim/module/owner/ui.py | 12 +-- .../bonsai/bim/module/patch/__init__.py | 3 +- .../bonsai/bim/module/patch/operator.py | 16 ++-- src/bonsai/bonsai/bim/module/patch/prop.py | 29 +++---- src/bonsai/bonsai/bim/module/patch/ui.py | 10 ++- .../bonsai/bim/module/profile/__init__.py | 3 +- src/bonsai/bonsai/bim/module/profile/data.py | 4 +- .../bonsai/bim/module/profile/operator.py | 9 ++- src/bonsai/bonsai/bim/module/profile/prop.py | 24 +++--- src/bonsai/bonsai/bim/module/profile/ui.py | 7 +- .../bonsai/bim/module/project/__init__.py | 3 +- src/bonsai/bonsai/bim/module/project/data.py | 14 ++-- .../bonsai/bim/module/project/decorator.py | 14 ++-- src/bonsai/bonsai/bim/module/project/gizmo.py | 3 +- .../bonsai/bim/module/project/operator.py | 76 +++++++++++-------- src/bonsai/bonsai/bim/module/project/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/project/ui.py | 26 ++++--- .../bonsai/bim/module/project/workspace.py | 4 +- src/bonsai/bonsai/bim/module/pset/__init__.py | 3 +- src/bonsai/bonsai/bim/module/pset/data.py | 4 +- src/bonsai/bonsai/bim/module/pset/operator.py | 22 +++--- src/bonsai/bonsai/bim/module/pset/prop.py | 36 ++++----- src/bonsai/bonsai/bim/module/pset/ui.py | 25 +++--- .../bim/module/pset_template/__init__.py | 3 +- .../bonsai/bim/module/pset_template/data.py | 6 +- .../bim/module/pset_template/operator.py | 4 +- .../bonsai/bim/module/pset_template/prop.py | 26 ++++--- .../bonsai/bim/module/pset_template/ui.py | 3 +- src/bonsai/bonsai/bim/module/qto/__init__.py | 3 +- .../bonsai/bim/module/qto/calculator.py | 13 ++-- src/bonsai/bonsai/bim/module/qto/data.py | 1 + src/bonsai/bonsai/bim/module/qto/helper.py | 8 +- src/bonsai/bonsai/bim/module/qto/operator.py | 7 +- src/bonsai/bonsai/bim/module/qto/prop.py | 31 ++++---- src/bonsai/bonsai/bim/module/qto/ui.py | 1 + .../bonsai/bim/module/resource/__init__.py | 3 +- src/bonsai/bonsai/bim/module/resource/data.py | 6 +- .../bonsai/bim/module/resource/operator.py | 5 +- src/bonsai/bonsai/bim/module/resource/prop.py | 28 +++---- src/bonsai/bonsai/bim/module/resource/ui.py | 11 ++- src/bonsai/bonsai/bim/module/root/__init__.py | 3 +- src/bonsai/bonsai/bim/module/root/data.py | 10 ++- src/bonsai/bonsai/bim/module/root/operator.py | 22 +++--- src/bonsai/bonsai/bim/module/root/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/root/ui.py | 7 +- .../bonsai/bim/module/search/__init__.py | 3 +- src/bonsai/bonsai/bim/module/search/data.py | 6 +- .../bonsai/bim/module/search/operator.py | 28 +++---- src/bonsai/bonsai/bim/module/search/prop.py | 29 ++++--- src/bonsai/bonsai/bim/module/search/ui.py | 23 ++++-- .../bonsai/bim/module/sequence/__init__.py | 3 +- src/bonsai/bonsai/bim/module/sequence/data.py | 8 +- .../bonsai/bim/module/sequence/helper.py | 9 ++- .../bonsai/bim/module/sequence/operator.py | 14 ++-- src/bonsai/bonsai/bim/module/sequence/prop.py | 35 +++++---- src/bonsai/bonsai/bim/module/sequence/ui.py | 22 ++++-- .../bonsai/bim/module/spatial/__init__.py | 3 +- src/bonsai/bonsai/bim/module/spatial/data.py | 8 +- .../bonsai/bim/module/spatial/decorator.py | 9 ++- .../bonsai/bim/module/spatial/operator.py | 8 +- src/bonsai/bonsai/bim/module/spatial/prop.py | 36 ++++----- src/bonsai/bonsai/bim/module/spatial/ui.py | 13 +++- .../bonsai/bim/module/spatial/workspace.py | 8 +- .../bonsai/bim/module/structural/__init__.py | 3 +- .../bonsai/bim/module/structural/data.py | 3 +- .../bonsai/bim/module/structural/decorator.py | 14 ++-- .../module/structural/load_decoration_data.py | 14 ++-- .../bonsai/bim/module/structural/operator.py | 10 ++- .../bonsai/bim/module/structural/prop.py | 32 ++++---- .../bonsai/bim/module/structural/shader.py | 3 +- src/bonsai/bonsai/bim/module/structural/ui.py | 21 ++--- .../bonsai/bim/module/structural/workspace.py | 8 +- .../bonsai/bim/module/style/__init__.py | 3 +- src/bonsai/bonsai/bim/module/style/data.py | 6 +- .../bonsai/bim/module/style/operator.py | 14 ++-- src/bonsai/bonsai/bim/module/style/prop.py | 24 +++--- src/bonsai/bonsai/bim/module/style/ui.py | 9 ++- .../bonsai/bim/module/system/__init__.py | 3 +- src/bonsai/bonsai/bim/module/system/data.py | 4 +- .../bonsai/bim/module/system/decorator.py | 15 ++-- .../bonsai/bim/module/system/operator.py | 8 +- src/bonsai/bonsai/bim/module/system/prop.py | 26 ++++--- src/bonsai/bonsai/bim/module/system/ui.py | 28 +++++-- .../bonsai/bim/module/tester/__init__.py | 3 +- src/bonsai/bonsai/bim/module/tester/data.py | 3 +- .../bonsai/bim/module/tester/operator.py | 36 ++++----- src/bonsai/bonsai/bim/module/tester/prop.py | 17 +++-- src/bonsai/bonsai/bim/module/tester/ui.py | 4 +- src/bonsai/bonsai/bim/module/type/__init__.py | 3 +- src/bonsai/bonsai/bim/module/type/data.py | 3 +- src/bonsai/bonsai/bim/module/type/operator.py | 20 ++--- src/bonsai/bonsai/bim/module/type/prop.py | 22 +++--- src/bonsai/bonsai/bim/module/type/ui.py | 7 +- src/bonsai/bonsai/bim/module/unit/__init__.py | 3 +- src/bonsai/bonsai/bim/module/unit/data.py | 5 +- src/bonsai/bonsai/bim/module/unit/operator.py | 6 +- src/bonsai/bonsai/bim/module/unit/prop.py | 20 ++--- src/bonsai/bonsai/bim/module/unit/ui.py | 9 ++- src/bonsai/bonsai/bim/module/void/__init__.py | 3 +- src/bonsai/bonsai/bim/module/void/data.py | 6 +- src/bonsai/bonsai/bim/module/void/operator.py | 5 +- src/bonsai/bonsai/bim/module/void/prop.py | 12 ++- src/bonsai/bonsai/bim/module/void/ui.py | 7 +- src/bonsai/bonsai/bim/module/web/__init__.py | 3 +- src/bonsai/bonsai/bim/module/web/data.py | 6 +- src/bonsai/bonsai/bim/module/web/operator.py | 2 + src/bonsai/bonsai/bim/module/web/prop.py | 13 ++-- src/bonsai/bonsai/bim/module/web/ui.py | 1 + src/bonsai/bonsai/bim/operator.py | 43 ++++++----- src/bonsai/bonsai/bim/prop.py | 42 +++++----- src/bonsai/bonsai/bim/schema.py | 6 +- src/bonsai/bonsai/bim/ui.py | 36 ++++----- src/bonsai/bonsai/core/aggregate.py | 2 + src/bonsai/bonsai/core/attribute.py | 2 + src/bonsai/bonsai/core/brick.py | 2 + src/bonsai/bonsai/core/bsdd.py | 6 +- src/bonsai/bonsai/core/context.py | 2 + src/bonsai/bonsai/core/cost.py | 4 +- src/bonsai/bonsai/core/covering.py | 2 + src/bonsai/bonsai/core/debug.py | 2 + src/bonsai/bonsai/core/document.py | 2 + src/bonsai/bonsai/core/drawing.py | 4 +- src/bonsai/bonsai/core/geometry.py | 4 +- src/bonsai/bonsai/core/georeference.py | 2 + src/bonsai/bonsai/core/ifcgit.py | 6 +- src/bonsai/bonsai/core/library.py | 2 + src/bonsai/bonsai/core/material.py | 2 + src/bonsai/bonsai/core/misc.py | 2 + src/bonsai/bonsai/core/model.py | 9 ++- src/bonsai/bonsai/core/nest.py | 2 + src/bonsai/bonsai/core/owner.py | 6 +- src/bonsai/bonsai/core/patch.py | 2 + src/bonsai/bonsai/core/profile.py | 2 + src/bonsai/bonsai/core/project.py | 2 + src/bonsai/bonsai/core/pset.py | 4 +- src/bonsai/bonsai/core/qto.py | 2 + src/bonsai/bonsai/core/resource.py | 4 +- src/bonsai/bonsai/core/root.py | 3 + src/bonsai/bonsai/core/search.py | 2 + src/bonsai/bonsai/core/sequence.py | 2 + src/bonsai/bonsai/core/spatial.py | 2 + src/bonsai/bonsai/core/structural.py | 2 + src/bonsai/bonsai/core/style.py | 4 +- src/bonsai/bonsai/core/system.py | 2 + src/bonsai/bonsai/core/type.py | 5 +- src/bonsai/bonsai/core/unit.py | 2 + src/bonsai/bonsai/core/web.py | 2 + src/bonsai/bonsai/tool/__init__.py | 3 +- src/bonsai/bonsai/tool/aggregate.py | 14 +++- src/bonsai/bonsai/tool/attribute.py | 28 ++++--- src/bonsai/bonsai/tool/bcf.py | 22 +++--- src/bonsai/bonsai/tool/blender.py | 74 ++++++++++-------- src/bonsai/bonsai/tool/boundary.py | 14 +++- src/bonsai/bonsai/tool/brick.py | 23 +++--- src/bonsai/bonsai/tool/bsdd.py | 15 ++-- src/bonsai/bonsai/tool/cad.py | 16 ++-- src/bonsai/bonsai/tool/clash.py | 17 +++-- src/bonsai/bonsai/tool/classification.py | 10 ++- src/bonsai/bonsai/tool/collector.py | 6 +- src/bonsai/bonsai/tool/context.py | 13 ++-- src/bonsai/bonsai/tool/cost.py | 26 ++++--- src/bonsai/bonsai/tool/covering.py | 5 +- src/bonsai/bonsai/tool/debug.py | 15 ++-- src/bonsai/bonsai/tool/demo.py | 4 +- src/bonsai/bonsai/tool/document.py | 9 ++- src/bonsai/bonsai/tool/drawing.py | 68 +++++++++-------- src/bonsai/bonsai/tool/feature.py | 15 ++-- src/bonsai/bonsai/tool/geometry.py | 56 ++++++++------ src/bonsai/bonsai/tool/georeference.py | 13 ++-- src/bonsai/bonsai/tool/group.py | 10 ++- src/bonsai/bonsai/tool/ifc.py | 13 ++-- src/bonsai/bonsai/tool/ifcgit.py | 13 ++-- src/bonsai/bonsai/tool/layer.py | 5 +- src/bonsai/bonsai/tool/library.py | 7 +- src/bonsai/bonsai/tool/loader.py | 21 ++--- src/bonsai/bonsai/tool/material.py | 22 ++++-- src/bonsai/bonsai/tool/misc.py | 10 ++- src/bonsai/bonsai/tool/model.py | 63 +++++++++------ src/bonsai/bonsai/tool/nest.py | 7 +- src/bonsai/bonsai/tool/owner.py | 9 ++- src/bonsai/bonsai/tool/patch.py | 5 +- src/bonsai/bonsai/tool/polyline.py | 16 ++-- src/bonsai/bonsai/tool/profile.py | 9 ++- src/bonsai/bonsai/tool/project.py | 19 +++-- src/bonsai/bonsai/tool/pset.py | 16 ++-- src/bonsai/bonsai/tool/pset_template.py | 9 ++- src/bonsai/bonsai/tool/qto.py | 13 ++-- src/bonsai/bonsai/tool/raycast.py | 10 ++- src/bonsai/bonsai/tool/resource.py | 26 ++++--- src/bonsai/bonsai/tool/root.py | 11 ++- src/bonsai/bonsai/tool/search.py | 17 +++-- src/bonsai/bonsai/tool/sequence.py | 45 ++++++----- src/bonsai/bonsai/tool/snap.py | 15 ++-- src/bonsai/bonsai/tool/spatial.py | 37 ++++----- src/bonsai/bonsai/tool/structural.py | 17 ++++- src/bonsai/bonsai/tool/style.py | 19 +++-- src/bonsai/bonsai/tool/surveyor.py | 5 +- src/bonsai/bonsai/tool/system.py | 15 ++-- src/bonsai/bonsai/tool/type.py | 7 +- src/bonsai/bonsai/tool/unit.py | 9 ++- src/bonsai/bonsai/tool/web.py | 53 +++++++------ src/bonsai/pyproject.toml | 5 -- src/bonsai/runpytest.py | 1 + src/bonsai/scripts/bonsai_translations.py | 12 +-- .../uniclass_classification.py | 1 + src/bonsai/scripts/classifications/vbis.py | 5 +- .../classifications/xml_classification.py | 3 +- .../scripts/dev_environment_vscode_config.py | 6 +- src/bonsai/scripts/dxf2ifc.py | 2 +- src/bonsai/scripts/extract.py | 8 +- src/bonsai/scripts/gbxml.py | 7 +- src/bonsai/scripts/generate_au_library.py | 1 + src/bonsai/scripts/generate_demo_library.py | 4 +- .../scripts/generate_entourage_library.py | 5 +- .../scripts/generate_furniture_library.py | 13 ++-- .../scripts/generate_landscape_library.py | 19 ++--- src/bonsai/scripts/generate_png_icons.py | 2 +- src/bonsai/scripts/generate_site_library.py | 1 + .../generate_steel_profiles_library.py | 7 +- src/bonsai/scripts/generate_util_type_json.py | 1 + .../scripts/geonodes_modifier_prototype.py | 9 ++- src/bonsai/scripts/getIfcElements.py | 2 +- src/bonsai/scripts/get_all_qtos.py | 7 +- src/bonsai/scripts/get_description.py | 5 +- src/bonsai/scripts/get_volume_by_material.py | 5 +- src/bonsai/scripts/headless_import.py | 1 + src/bonsai/scripts/obj2ifc-meshlab.py | 8 +- src/bonsai/scripts/obj2ifc.py | 8 +- src/bonsai/scripts/replace_drawing_path.py | 10 +-- src/bonsai/scripts/reregister_bonsai.py | 1 + src/bonsai/scripts/setup_pytest.py | 4 +- .../scripts/standalone_blender_import.py | 3 +- src/bonsai/scripts/standalone_drawer.py | 9 ++- .../scripts/standalone_section_shader.py | 14 ++-- src/bonsai/scripts/waldo.py | 15 ++-- src/bonsai/test/bim/bootstrap.py | 12 +-- .../module/drawing/test_segment_clipping.py | 2 +- src/bonsai/test/bim/stub.py | 2 +- src/bonsai/test/bim/test_feature.py | 37 ++++----- src/bonsai/test/core/bootstrap.py | 6 +- src/bonsai/test/core/test_aggregate.py | 2 +- src/bonsai/test/core/test_attribute.py | 2 +- src/bonsai/test/core/test_brick.py | 2 +- src/bonsai/test/core/test_context.py | 2 +- src/bonsai/test/core/test_document.py | 2 +- src/bonsai/test/core/test_drawing.py | 2 +- src/bonsai/test/core/test_geometry.py | 2 +- src/bonsai/test/core/test_georeference.py | 2 +- src/bonsai/test/core/test_material.py | 2 +- src/bonsai/test/core/test_misc.py | 2 +- src/bonsai/test/core/test_nest.py | 2 +- src/bonsai/test/core/test_owner.py | 2 +- src/bonsai/test/core/test_project.py | 2 +- src/bonsai/test/core/test_root.py | 2 +- src/bonsai/test/core/test_spatial.py | 2 +- src/bonsai/test/core/test_style.py | 2 +- src/bonsai/test/core/test_system.py | 2 +- src/bonsai/test/core/test_type.py | 2 +- src/bonsai/test/tool/test_aggregate.py | 3 +- src/bonsai/test/tool/test_blender.py | 8 +- src/bonsai/test/tool/test_brick.py | 10 ++- src/bonsai/test/tool/test_cad.py | 5 +- src/bonsai/test/tool/test_classification.py | 4 +- src/bonsai/test/tool/test_collector.py | 1 + src/bonsai/test/tool/test_context.py | 3 +- src/bonsai/test/tool/test_debug.py | 8 +- src/bonsai/test/tool/test_document.py | 6 +- src/bonsai/test/tool/test_drawing.py | 17 +++-- src/bonsai/test/tool/test_geometry.py | 12 +-- src/bonsai/test/tool/test_georeference.py | 8 +- src/bonsai/test/tool/test_ifc.py | 12 +-- src/bonsai/test/tool/test_library.py | 3 +- src/bonsai/test/tool/test_loader.py | 18 +++-- src/bonsai/test/tool/test_material.py | 3 +- src/bonsai/test/tool/test_misc.py | 8 +- src/bonsai/test/tool/test_model.py | 12 +-- src/bonsai/test/tool/test_nest.py | 3 +- src/bonsai/test/tool/test_owner.py | 8 +- src/bonsai/test/tool/test_patch.py | 4 +- src/bonsai/test/tool/test_polyline.py | 3 +- src/bonsai/test/tool/test_project.py | 12 +-- src/bonsai/test/tool/test_pset.py | 1 + src/bonsai/test/tool/test_pset_template.py | 1 + src/bonsai/test/tool/test_qto.py | 9 ++- src/bonsai/test/tool/test_root.py | 3 +- src/bonsai/test/tool/test_sequence.py | 4 +- src/bonsai/test/tool/test_spatial.py | 5 +- src/bonsai/test/tool/test_style.py | 6 +- src/bonsai/test/tool/test_surveyor.py | 4 +- src/bonsai/test/tool/test_system.py | 10 ++- src/bonsai/test/tool/test_type.py | 3 +- src/bonsai/test/tool/test_unit.py | 3 +- src/ifc4d/__main__.py | 1 + src/ifc4d/ifc4d/p62ifc.py | 1 - src/ifc4d/ifc4d/pp2ifc.py | 1 - src/ifc5d/test/test_csv2ifc.py | 5 +- .../alignment/test_create_as_offset_curve.py | 1 - .../alignment/test_create_layout_segment.py | 1 - src/ifcopenshell-python/test/test_stream.py | 1 - .../test/util/test_file.py | 1 - .../nodes/ifc/shape_builder/extrude.py | 5 +- .../nodes/ifc/shape_builder/mesh.py | 3 +- .../nodes/ifc/shape_builder/polyline.py | 3 +- .../nodes/ifc/shape_builder/rectangle.py | 5 +- .../nodes/ifc/shape_builder/representation.py | 5 +- .../nodes/ifc/shape_builder/shape_output.py | 3 +- .../nodes/ifc/shape_builder/test.py | 3 +- src/ifctester/test/test_facet.py | 1 + src/ifctester/webapp/public/worker/api.py | 3 +- 524 files changed, 3338 insertions(+), 2344 deletions(-) diff --git a/src/bcf/bcf/agnostic/topic.py b/src/bcf/bcf/agnostic/topic.py index 1e77f40e97..a25f4af482 100644 --- a/src/bcf/bcf/agnostic/topic.py +++ b/src/bcf/bcf/agnostic/topic.py @@ -2,6 +2,8 @@ import tempfile from pathlib import Path from typing import Optional, Union +from typing_extensions import assert_never + import bcf.agnostic.model as mdl import bcf.v2.bcfxml import bcf.v2.model @@ -9,7 +11,6 @@ import bcf.v2.topic import bcf.v3.bcfxml import bcf.v3.model import bcf.v3.topic -from typing_extensions import assert_never TopicHandler = Union[bcf.v2.topic.TopicHandler, bcf.v3.topic.TopicHandler] diff --git a/src/bcf/tests/conftest.py b/src/bcf/tests/conftest.py index f19792122a..ea1b2aee8b 100644 --- a/src/bcf/tests/conftest.py +++ b/src/bcf/tests/conftest.py @@ -1,4 +1,5 @@ import pytest + from bcf.xml_parser import XmlParserSerializer diff --git a/src/bcf/tests/v2/test_bcf_xml.py b/src/bcf/tests/v2/test_bcf_xml.py index 1b5128e96f..fed1428e73 100644 --- a/src/bcf/tests/v2/test_bcf_xml.py +++ b/src/bcf/tests/v2/test_bcf_xml.py @@ -4,8 +4,9 @@ import uuid from pathlib import Path from tempfile import TemporaryDirectory -import bcf.v2.model as mdl import pytest + +import bcf.v2.model as mdl from bcf.v2.bcfxml import BcfXml from bcf.v2.topic import TopicHandler from bcf.v2.visinfo import ( diff --git a/src/bcf/tests/v2/test_example_files.py b/src/bcf/tests/v2/test_example_files.py index 6d964bd0e9..3821569c28 100644 --- a/src/bcf/tests/v2/test_example_files.py +++ b/src/bcf/tests/v2/test_example_files.py @@ -3,10 +3,11 @@ import os import zipfile from pathlib import Path +from xsdata.models.datatype import XmlDateTime + import bcf.v2.model as mdl from bcf.v2.bcfxml import BcfXml from bcf.v2.topic import TopicHandler -from xsdata.models.datatype import XmlDateTime def test_maximum_information() -> None: diff --git a/src/bcf/tests/v2/test_ifcclash_api.py b/src/bcf/tests/v2/test_ifcclash_api.py index 34c3a493e4..14945e8392 100644 --- a/src/bcf/tests/v2/test_ifcclash_api.py +++ b/src/bcf/tests/v2/test_ifcclash_api.py @@ -1,5 +1,6 @@ import numpy as np import pytest + from bcf.v2.bcfxml import BcfXml diff --git a/src/bcf/tests/v3/test_bcf_xml.py b/src/bcf/tests/v3/test_bcf_xml.py index ae658ca55f..50664b98c7 100644 --- a/src/bcf/tests/v3/test_bcf_xml.py +++ b/src/bcf/tests/v3/test_bcf_xml.py @@ -4,8 +4,9 @@ import uuid from pathlib import Path from tempfile import TemporaryDirectory -import bcf.v3.model as mdl import pytest + +import bcf.v3.model as mdl from bcf.v3.bcfxml import BcfXml from bcf.v3.topic import TopicHandler from bcf.v3.visinfo import ( diff --git a/src/bcf/tests/v3/test_example_files.py b/src/bcf/tests/v3/test_example_files.py index c25a3f3f7e..3f141afda6 100644 --- a/src/bcf/tests/v3/test_example_files.py +++ b/src/bcf/tests/v3/test_example_files.py @@ -2,9 +2,10 @@ import os import zipfile from pathlib import Path +from xsdata.models.datatype import XmlDateTime + import bcf.v3.model as mdl from bcf.v3.bcfxml import BcfXml -from xsdata.models.datatype import XmlDateTime def test_doc_ref_internal() -> None: diff --git a/src/bcf/tests/v3/test_ifcclash_api.py b/src/bcf/tests/v3/test_ifcclash_api.py index faea9b6a1a..d470f1ffb8 100644 --- a/src/bcf/tests/v3/test_ifcclash_api.py +++ b/src/bcf/tests/v3/test_ifcclash_api.py @@ -1,5 +1,6 @@ import numpy as np import pytest + from bcf.v3.bcfxml import BcfXml diff --git a/src/bonsai/bonsai/__init__.py b/src/bonsai/bonsai/__init__.py index ab5d46607b..b4083b0eef 100644 --- a/src/bonsai/bonsai/__init__.py +++ b/src/bonsai/bonsai/__init__.py @@ -32,17 +32,16 @@ if IN_BLENDER: # and then as a bonsai-package. IN_PACKAGE = __package__ == "bonsai" -import re import platform -import traceback -import webbrowser -import uuid +import re import shutil +import traceback +import uuid +import webbrowser from collections import deque -from pathlib import Path -from typing import Union, Any from collections.abc import Generator - +from pathlib import Path +from typing import Any, Union last_commit_hash = "8888888" last_commit_date = "9999999" diff --git a/src/bonsai/bonsai/bim/__init__.py b/src/bonsai/bonsai/bim/__init__.py index a7dc729881..4302739aab 100644 --- a/src/bonsai/bonsai/bim/__init__.py +++ b/src/bonsai/bonsai/bim/__init__.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import importlib import os +from collections.abc import Callable +from typing import Union + import bpy import bpy.utils.previews -import importlib -from bpy_extras.io_utils import ImportHelper, ExportHelper -from . import handler, ui, prop, operator -from typing import Union -from collections.abc import Callable +from bpy_extras.io_utils import ExportHelper, ImportHelper + +from . import handler, operator, prop, ui try: from bonsai.translations import translations_dict diff --git a/src/bonsai/bonsai/bim/data/webui/sioserver.py b/src/bonsai/bonsai/bim/data/webui/sioserver.py index 4701268232..91c3c4e8eb 100644 --- a/src/bonsai/bonsai/bim/data/webui/sioserver.py +++ b/src/bonsai/bonsai/bim/data/webui/sioserver.py @@ -1,6 +1,5 @@ -import sys import os - +import sys bonsai_lib_path = os.environ.get("BONSAI_LIB_PATH") bonsai_version = os.environ.get("BONSAI_VERSION") @@ -9,13 +8,14 @@ if bonsai_lib_path: sys.path.insert(0, bonsai_lib_path) import argparse -from aiohttp import web -import socketio -import pystache -import json import base64 +import json import xml.etree.ElementTree as ET +import pystache +import socketio +from aiohttp import web + sio_port = 8080 # default port sio = socketio.AsyncServer(cors_allowed_origins="*", async_mode="aiohttp", max_http_buffer_size=10000000) diff --git a/src/bonsai/bonsai/bim/export_ifc.py b/src/bonsai/bonsai/bim/export_ifc.py index 6134786124..7295c72e34 100644 --- a/src/bonsai/bonsai/bim/export_ifc.py +++ b/src/bonsai/bonsai/bim/export_ifc.py @@ -17,27 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy -import json + import datetime -import zipfile +import json +import os import tempfile +import zipfile +from logging import Logger +from math import radians +from typing import Union + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.core.geometry +from mathutils import Vector + import bonsai.core.aggregate +import bonsai.core.geometry import bonsai.core.spatial import bonsai.core.style +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from mathutils import Vector -from typing import Union -from logging import Logger -from math import radians class IfcExporter: diff --git a/src/bonsai/bonsai/bim/handler.py b/src/bonsai/bonsai/bim/handler.py index c7cb10cdde..231b44c671 100644 --- a/src/bonsai/bonsai/bim/handler.py +++ b/src/bonsai/bonsai/bim/handler.py @@ -17,26 +17,31 @@ # along with Bonsai. If not, see . import os +import weakref +from collections.abc import Callable +from math import cos +from typing import Union + import bpy +import ifcopenshell.api.owner.settings import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit -import ifcopenshell.api.owner.settings +from bpy.app.handlers import persistent +from mathutils import Vector + import bonsai.bim import bonsai.tool as tool -import weakref -from bpy.app.handlers import persistent from bonsai.bim.ifc import IfcStore -from bonsai.bim.module.model.data import AuthoringData from bonsai.bim.module.aggregate.decorator import AggregateDecorator from bonsai.bim.module.georeference.decorator import GeoreferenceDecorator -from bonsai.bim.module.model.decorator import WallAxisDecorator, SlabDirectionDecorator, BoundingBoxDecorator +from bonsai.bim.module.model.data import AuthoringData +from bonsai.bim.module.model.decorator import ( + BoundingBoxDecorator, + SlabDirectionDecorator, + WallAxisDecorator, +) from bonsai.bim.module.nest.decorator import NestDecorator -from mathutils import Vector -from math import cos -from typing import Union -from collections.abc import Callable - cwd = os.path.dirname(os.path.realpath(__file__)) global_subscription_owner = object() @@ -202,8 +207,8 @@ def refresh_ui_data(): Note that calling non-ifc-operators by itself doesn't refresh the UI data and it need to be refreshed manually if needed. """ - from bonsai.bim import modules import bonsai.bim.ui + from bonsai.bim import modules bonsai.bim.ui.refresh() diff --git a/src/bonsai/bonsai/bim/helper.py b/src/bonsai/bonsai/bim/helper.py index e81c483216..9267134988 100644 --- a/src/bonsai/bonsai/bim/helper.py +++ b/src/bonsai/bonsai/bim/helper.py @@ -17,24 +17,31 @@ # along with Bonsai. If not, see . from __future__ import annotations + import importlib -import bpy import json +from collections.abc import Callable, Iterable, Sequence +from types import EllipsisType +from typing import TYPE_CHECKING, Any, Optional, Union + +import bpy import ifcopenshell import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.attribute import ifcopenshell.util.element import ifcopenshell.util.unit -from ifcopenshell.util.doc import get_attribute_doc, get_predefined_type_doc, get_property_doc +from ifcopenshell.util.doc import ( + get_attribute_doc, + get_predefined_type_doc, + get_property_doc, +) + import bonsai.tool as tool -from types import EllipsisType -from typing import Optional, Any, Union, TYPE_CHECKING -from collections.abc import Callable, Iterable, Sequence if TYPE_CHECKING: import bonsai.bim.prop - from bonsai.bim.prop import Attribute from bonsai.bim.module.search.prop import BIMFilterGroup + from bonsai.bim.prop import Attribute # ImportCallback return values: # - None - property should be imported by default workflow diff --git a/src/bonsai/bonsai/bim/ifc.py b/src/bonsai/bonsai/bim/ifc.py index 881de8adf9..f7d23e1dbe 100644 --- a/src/bonsai/bonsai/bim/ifc.py +++ b/src/bonsai/bonsai/bim/ifc.py @@ -17,26 +17,28 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy -import uuid -import shutil + import hashlib -import zipfile +import os +import shutil import tempfile import traceback +import uuid +import zipfile +from collections.abc import Callable +from pathlib import Path +from typing import Literal, NotRequired, Optional, TypedDict, Union + +import bpy import ifcopenshell import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper +from ifcopenshell.file import UndoSystemError + import bonsai import bonsai.bim.handler import bonsai.tool as tool -from ifcopenshell.file import UndoSystemError -from pathlib import Path from bonsai.tool.brick import BrickStore -from typing import Union, Optional, TypedDict, NotRequired, Literal -from collections.abc import Callable - IFC_CONNECTED_TYPE = Union[bpy.types.Material, bpy.types.Object] diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index d8ecfd6894..6e04800dd4 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -17,33 +17,36 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import time + import json -import ifcpatch import logging -import traceback -import mathutils -import numpy as np -import numpy.typing as npt import multiprocessing +import time +import traceback +from collections.abc import Iterable +from typing import Any, Literal, Optional, Union + +import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape -import bonsai.tool as tool -from bonsai.bim.ifc import IfcStore, IFC_CONNECTED_TYPE -from bonsai.tool.loader import OBJECT_DATA_TYPE -from typing import Union, Optional, Any, Literal -from collections.abc import Iterable +import ifcopenshell.util.unit +import ifcpatch +import mathutils +import numpy as np +import numpy.typing as npt from ifcopenshell.util.shape import MatrixType +import bonsai.tool as tool +from bonsai.bim.ifc import IFC_CONNECTED_TYPE, IfcStore +from bonsai.tool.loader import OBJECT_DATA_TYPE + class MaterialCreator: mesh: bpy.types.Mesh diff --git a/src/bonsai/bonsai/bim/module/aggregate/__init__.py b/src/bonsai/bonsai/bim/module/aggregate/__init__.py index daafdf201c..9f081ecaec 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/__init__.py +++ b/src/bonsai/bonsai/bim/module/aggregate/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.BIM_OT_add_aggregate, diff --git a/src/bonsai/bonsai/bim/module/aggregate/data.py b/src/bonsai/bonsai/bim/module/aggregate/data.py index ad58f6defb..22c7505bf3 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/data.py +++ b/src/bonsai/bonsai/bim/module/aggregate/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifcopenshell.util.element from typing import Union +import bpy +import ifcopenshell.util.element + +import bonsai.tool as tool + def refresh(): AggregateData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/aggregate/decorator.py b/src/bonsai/bonsai/bim/module/aggregate/decorator.py index 877e7f41e0..080f965bf8 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/decorator.py +++ b/src/bonsai/bonsai/bim/module/aggregate/decorator.py @@ -21,11 +21,12 @@ import bpy import gpu import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool from bpy.types import SpaceView3D from bpy_extras import view3d_utils from gpu_extras.batch import batch_for_shader from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.geometry.decorator import ItemDecorator diff --git a/src/bonsai/bonsai/bim/module/aggregate/operator.py b/src/bonsai/bonsai/bim/module/aggregate/operator.py index 32d06dd94e..be6272c3ab 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/operator.py +++ b/src/bonsai/bonsai/bim/module/aggregate/operator.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell import ifcopenshell.api @@ -23,10 +25,10 @@ import ifcopenshell.api.group import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.util.element -import bonsai.tool as tool + import bonsai.core.aggregate as core import bonsai.core.spatial -from typing import TYPE_CHECKING +import bonsai.tool as tool class BIM_OT_aggregate_assign_object(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/aggregate/prop.py b/src/bonsai/bonsai/bim/module/aggregate/prop.py index 03a3d0f533..241663882f 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/prop.py +++ b/src/bonsai/bonsai/bim/module/aggregate/prop.py @@ -16,24 +16,29 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell.util.element -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.spatial.data import SpatialData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from bonsai.bim.module.aggregate.decorator import AggregateDecorator, AggregateModeDecorator -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.aggregate.decorator import ( + AggregateDecorator, + AggregateModeDecorator, +) +from bonsai.bim.module.spatial.data import SpatialData +from bonsai.bim.prop import Attribute, StrProperty def can_aggregate(relating_obj: bpy.types.Object, related_obj: bpy.types.Object) -> bool: diff --git a/src/bonsai/bonsai/bim/module/aggregate/ui.py b/src/bonsai/bonsai/bim/module/aggregate/ui.py index e9c596f9ac..d693843401 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/ui.py +++ b/src/bonsai/bonsai/bim/module/aggregate/ui.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . from bpy.types import Panel + +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore from bonsai.bim.module.aggregate.data import AggregateData from bonsai.bim.module.group.data import GroupsData, ObjectGroupsData -from bonsai.bim.ifc import IfcStore -import bonsai.tool as tool class BIM_PT_aggregate(Panel): diff --git a/src/bonsai/bonsai/bim/module/alignment/operator.py b/src/bonsai/bonsai/bim/module/alignment/operator.py index 58c139b639..0705dcb1b9 100644 --- a/src/bonsai/bonsai/bim/module/alignment/operator.py +++ b/src/bonsai/bonsai/bim/module/alignment/operator.py @@ -18,25 +18,25 @@ # pyright: reportUnnecessaryTypeIgnoreComment=error +import calendar +import json import os - -import ifcopenshell.api.alignment +import time +from datetime import datetime import bpy -import json -import time -import calendar -import isodate -import bonsai.core.sequence as core -import bonsai.tool as tool -import bonsai.bim.module.sequence.helper as helper +import ifcopenshell.api.alignment import ifcopenshell.api.spatial import ifcopenshell.geom -import ifcopenshell.util.sequence import ifcopenshell.util.selector -from datetime import datetime -from dateutil import parser, relativedelta +import ifcopenshell.util.sequence +import isodate from bpy_extras.io_utils import ImportHelper +from dateutil import parser, relativedelta + +import bonsai.bim.module.sequence.helper as helper +import bonsai.core.sequence as core +import bonsai.tool as tool class ImportAlignmentCSV(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): diff --git a/src/bonsai/bonsai/bim/module/attribute/__init__.py b/src/bonsai/bonsai/bim/module/attribute/__init__.py index 7348a2cffb..1e1402d6f5 100644 --- a/src/bonsai/bonsai/bim/module/attribute/__init__.py +++ b/src/bonsai/bonsai/bim/module/attribute/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.EnableEditingAttributes, diff --git a/src/bonsai/bonsai/bim/module/attribute/data.py b/src/bonsai/bonsai/bim/module/attribute/data.py index 8c5000a128..32f6f895ce 100644 --- a/src/bonsai/bonsai/bim/module/attribute/data.py +++ b/src/bonsai/bonsai/bim/module/attribute/data.py @@ -18,6 +18,7 @@ import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/attribute/operator.py b/src/bonsai/bonsai/bim/module/attribute/operator.py index fb39efe91e..13901c0f81 100644 --- a/src/bonsai/bonsai/bim/module/attribute/operator.py +++ b/src/bonsai/bonsai/bim/module/attribute/operator.py @@ -16,22 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell import ifcopenshell.api.attribute import ifcopenshell.guid import ifcopenshell.util.element + import bonsai.bim.helper -import bonsai.tool as tool import bonsai.core.attribute as core import bonsai.core.spatial -from typing import TYPE_CHECKING, Any, Union, Literal +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.prop import Attribute import bpy.stub_internal.rna_enums as rna_enums + from bonsai.bim.prop import Attribute + def get_objs_for_operation( operator_properties: "AttributesOperator", context: bpy.types.Context diff --git a/src/bonsai/bonsai/bim/module/attribute/prop.py b/src/bonsai/bonsai/bim/module/attribute/prop.py index 97246cf7ce..98ffb00c5c 100644 --- a/src/bonsai/bonsai/bim/module/attribute/prop.py +++ b/src/bonsai/bonsai/bim/module/attribute/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, StrProperty class BIMAttributeProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/attribute/ui.py b/src/bonsai/bonsai/bim/module/attribute/ui.py index 0665c84dd5..84813e8d1e 100644 --- a/src/bonsai/bonsai/bim/module/attribute/ui.py +++ b/src/bonsai/bonsai/bim/module/attribute/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.bim.helper + +from typing import TYPE_CHECKING + import bpy.types from bpy.types import Panel -from bonsai.bim.module.attribute.data import AttributesData + +import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING +from bonsai.bim.module.attribute.data import AttributesData if TYPE_CHECKING: from bonsai.bim.module.attribute.prop import BIMExplorerProperties, ExplorerEntity diff --git a/src/bonsai/bonsai/bim/module/augin/__init__.py b/src/bonsai/bonsai/bim/module/augin/__init__.py index 8b8009c4e6..bff5e9449d 100644 --- a/src/bonsai/bonsai/bim/module/augin/__init__.py +++ b/src/bonsai/bonsai/bim/module/augin/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( prop.AuginProperties, diff --git a/src/bonsai/bonsai/bim/module/augin/operator.py b/src/bonsai/bonsai/bim/module/augin/operator.py index b578beb554..10d802569a 100644 --- a/src/bonsai/bonsai/bim/module/augin/operator.py +++ b/src/bonsai/bonsai/bim/module/augin/operator.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import datetime import os -import bpy -import string import random import shutil -import requests +import string import tempfile -import datetime + +import bpy +import requests + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/augin/ui.py b/src/bonsai/bonsai/bim/module/augin/ui.py index 65ca3ac7f9..dfd6e49730 100644 --- a/src/bonsai/bonsai/bim/module/augin/ui.py +++ b/src/bonsai/bonsai/bim/module/augin/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy.types + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/bcf/__init__.py b/src/bonsai/bonsai/bim/module/bcf/__init__.py index e7153974f4..000f343727 100644 --- a/src/bonsai/bonsai/bim/module/bcf/__init__.py +++ b/src/bonsai/bonsai/bim/module/bcf/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ActivateBcfViewpoint, diff --git a/src/bonsai/bonsai/bim/module/bcf/bcfstore.py b/src/bonsai/bonsai/bim/module/bcf/bcfstore.py index 13be3faf1d..a1fec8aa6e 100644 --- a/src/bonsai/bonsai/bim/module/bcf/bcfstore.py +++ b/src/bonsai/bonsai/bim/module/bcf/bcfstore.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os -import bpy +from typing import Union + import bcf import bcf.bcfxml import bcf.v2.bcfxml +import bpy + import bonsai.tool as tool -from typing import Union class BcfStore: diff --git a/src/bonsai/bonsai/bim/module/bcf/operator.py b/src/bonsai/bonsai/bim/module/bcf/operator.py index 1c6137e93b..b0a6f1f699 100644 --- a/src/bonsai/bonsai/bim/module/bcf/operator.py +++ b/src/bonsai/bonsai/bim/module/bcf/operator.py @@ -17,6 +17,20 @@ # along with Bonsai. If not, see . import os +import tempfile +import uuid +import webbrowser +from math import atan, cos, degrees, radians, sin, tan +from pathlib import Path + +import bcf +import bcf.agnostic.topic +import bcf.agnostic.visinfo +import bcf.bcfxml +import bcf.v2.bcfxml +import bcf.v2.model +import bcf.v2.topic +import bcf.v2.visinfo import bcf.v3 import bcf.v3.bcfxml import bcf.v3.document @@ -24,30 +38,18 @@ import bcf.v3.model import bcf.v3.topic import bcf.v3.visinfo import bpy -import bcf -import bcf.bcfxml -import bcf.v2.bcfxml -import bcf.v2.model -import bcf.v2.topic -import bcf.v2.visinfo -import bcf.agnostic.topic -import bcf.agnostic.visinfo -import uuid -import numpy as np -import tempfile -import webbrowser import ifcopenshell import ifcopenshell.util.geolocation import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.bim.module.bcf.prop as bcf_prop -import bonsai.bim.module.bcf.bcfstore as bcfstore -from bpy_extras.io_utils import ImportHelper, ExportHelper -from pathlib import Path -from math import radians, degrees, atan, tan, cos, sin -from mathutils import Vector, Matrix, Euler, geometry +import numpy as np +from bpy_extras.io_utils import ExportHelper, ImportHelper +from mathutils import Euler, Matrix, Vector, geometry from xsdata.models.datatype import XmlDateTime +import bonsai.bim.module.bcf.bcfstore as bcfstore +import bonsai.bim.module.bcf.prop as bcf_prop +import bonsai.tool as tool + class NewBcfProject(bpy.types.Operator): bl_idname = "bim.new_bcf_project" diff --git a/src/bonsai/bonsai/bim/module/bcf/prop.py b/src/bonsai/bonsai/bim/module/bcf/prop.py index 6a01115821..b720a2ff74 100644 --- a/src/bonsai/bonsai/bim/module/bcf/prop.py +++ b/src/bonsai/bonsai/bim/module/bcf/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -from . import bcfstore -from bonsai.bim.prop import StrProperty -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from bcf.agnostic.extensions import get_extensions_attributes from typing import TYPE_CHECKING, Union +import bpy +from bcf.agnostic.extensions import get_extensions_attributes +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import StrProperty + +from . import bcfstore bcfviewpoints_enum = None diff --git a/src/bonsai/bonsai/bim/module/bcf/ui.py b/src/bonsai/bonsai/bim/module/bcf/ui.py index d0d25ecd10..e3478f63cf 100644 --- a/src/bonsai/bonsai/bim/module/bcf/ui.py +++ b/src/bonsai/bonsai/bim/module/bcf/ui.py @@ -17,15 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + import os -import bpy -import bonsai.tool as tool -from . import bcfstore -from bpy.types import Panel from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel + +import bonsai.tool as tool + +from . import bcfstore + if TYPE_CHECKING: - from bonsai.bim.module.bcf.prop import BcfTopic, BCFProperties + from bonsai.bim.module.bcf.prop import BCFProperties, BcfTopic class BIM_PT_bcf(Panel): diff --git a/src/bonsai/bonsai/bim/module/boundary/__init__.py b/src/bonsai/bonsai/bim/module/boundary/__init__.py index cf2f78a7da..fe11440adc 100644 --- a/src/bonsai/bonsai/bim/module/boundary/__init__.py +++ b/src/bonsai/bonsai/bim/module/boundary/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, operator, prop + +from . import operator, prop, ui classes = ( operator.AddBoundary, diff --git a/src/bonsai/bonsai/bim/module/boundary/data.py b/src/bonsai/bonsai/bim/module/boundary/data.py index e7f82caf4c..58ccadc713 100644 --- a/src/bonsai/bonsai/bim/module/boundary/data.py +++ b/src/bonsai/bonsai/bim/module/boundary/data.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/boundary/decorator.py b/src/bonsai/bonsai/bim/module/boundary/decorator.py index c7875c94bf..1f5859824e 100644 --- a/src/bonsai/bonsai/bim/module/boundary/decorator.py +++ b/src/bonsai/bonsai/bim/module/boundary/decorator.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu import bmesh -import bonsai.tool as tool +import gpu from bpy.types import SpaceView3D -from mathutils import Vector from gpu_extras.batch import batch_for_shader +from mathutils import Vector + +import bonsai.tool as tool class BoundaryDecorator: diff --git a/src/bonsai/bonsai/bim/module/boundary/operator.py b/src/bonsai/bonsai/bim/module/boundary/operator.py index 89b4bf6e72..4b26a0a4d9 100644 --- a/src/bonsai/bonsai/bim/module/boundary/operator.py +++ b/src/bonsai/bonsai/bim/module/boundary/operator.py @@ -16,34 +16,36 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import logging -import shapely -import shapely.ops -import mathutils -import numpy as np import multiprocessing +from math import acos, degrees, inf, pi, radians +from typing import Optional, Union + +import bmesh +import bpy import ifcopenshell.api import ifcopenshell.api.boundary import ifcopenshell.api.root import ifcopenshell.geom -import ifcopenshell.util.unit -import ifcopenshell.util.shape import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import bonsai.tool as tool -import bonsai.bim.import_ifc as import_ifc -from math import pi, inf, degrees, acos, radians -from mathutils import Vector, Matrix -from bonsai.bim.ifc import IfcStore -from bonsai.bim.module.model.decorator import ProfileDecorator -from bonsai.bim.module.boundary.decorator import BoundaryDecorator +import ifcopenshell.util.shape +import ifcopenshell.util.unit +import mathutils +import numpy as np +import shapely +import shapely.ops from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Vector + +import bonsai.bim.import_ifc as import_ifc import bonsai.core import bonsai.core.geometry -from typing import Union, Optional +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.boundary.decorator import BoundaryDecorator +from bonsai.bim.module.model.decorator import ProfileDecorator def disable_editing_boundary_geometry(context): diff --git a/src/bonsai/bonsai/bim/module/boundary/prop.py b/src/bonsai/bonsai/bim/module/boundary/prop.py index dc76de0e00..cd7e0b9de3 100644 --- a/src/bonsai/bonsai/bim/module/boundary/prop.py +++ b/src/bonsai/bonsai/bim/module/boundary/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -from bpy.types import PropertyGroup -from bonsai.bim.prop import ObjProperty from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + import bonsai.tool as tool -from typing import TYPE_CHECKING, Union +from bonsai.bim.prop import ObjProperty def space_filter(self: "BIMObjectBoundaryProperties", object: bpy.types.Object) -> bool: diff --git a/src/bonsai/bonsai/bim/module/boundary/ui.py b/src/bonsai/bonsai/bim/module/boundary/ui.py index ba7592b34c..54694d752c 100644 --- a/src/bonsai/bonsai/bim/module/boundary/ui.py +++ b/src/bonsai/bonsai/bim/module/boundary/ui.py @@ -18,6 +18,7 @@ import bpy from bpy.types import Panel, UIList + import bonsai.tool as tool from bonsai.bim.module.boundary.data import SpaceBoundariesData diff --git a/src/bonsai/bonsai/bim/module/brick/__init__.py b/src/bonsai/bonsai/bim/module/brick/__init__.py index 6f5077f767..64d1bd3156 100644 --- a/src/bonsai/bonsai/bim/module/brick/__init__.py +++ b/src/bonsai/bonsai/bim/module/brick/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddBrick, diff --git a/src/bonsai/bonsai/bim/module/brick/data.py b/src/bonsai/bonsai/bim/module/brick/data.py index b7ac6f61e1..bae294d713 100644 --- a/src/bonsai/bonsai/bim/module/brick/data.py +++ b/src/bonsai/bonsai/bim/module/brick/data.py @@ -17,11 +17,12 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool from bonsai.tool.brick import BrickStore try: - from rdflib import URIRef, BNode + from rdflib import BNode, URIRef except: # See #1860 print("Warning: brickschema not available.") diff --git a/src/bonsai/bonsai/bim/module/brick/operator.py b/src/bonsai/bonsai/bim/module/brick/operator.py index 94a9f9fe54..cb0a5f675f 100644 --- a/src/bonsai/bonsai/bim/module/brick/operator.py +++ b/src/bonsai/bonsai/bim/module/brick/operator.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell.api -import bonsai.tool as tool -import bonsai.core.brick as core +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.bim.handler -from bpy_extras.io_utils import ImportHelper, ExportHelper +import bonsai.core.brick as core +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore from bonsai.tool.brick import BrickStore diff --git a/src/bonsai/bonsai/bim/module/brick/prop.py b/src/bonsai/bonsai/bim/module/brick/prop.py index 4b738a0c77..9fe6d78407 100644 --- a/src/bonsai/bonsai/bim/module/brick/prop.py +++ b/src/bonsai/bonsai/bim/module/brick/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -from bonsai.bim.module.brick.data import BrickschemaData, BrickschemaReferencesData -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + import bonsai.core.brick as core import bonsai.tool.brick as tool +from bonsai.bim.module.brick.data import BrickschemaData, BrickschemaReferencesData +from bonsai.bim.prop import Attribute, StrProperty from bonsai.tool.brick import BrickStore -from typing import TYPE_CHECKING def update_active_brick_index(self, context): diff --git a/src/bonsai/bonsai/bim/module/brick/ui.py b/src/bonsai/bonsai/bim/module/brick/ui.py index a845b12e8e..aa910c272f 100644 --- a/src/bonsai/bonsai/bim/module/brick/ui.py +++ b/src/bonsai/bonsai/bim/module/brick/ui.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.brick.data import BrickschemaData, BrickschemaReferencesData from bonsai.tool.brick import BrickStore diff --git a/src/bonsai/bonsai/bim/module/bsdd/__init__.py b/src/bonsai/bonsai/bim/module/bsdd/__init__.py index 607e2754c2..25d6f501f0 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/__init__.py +++ b/src/bonsai/bonsai/bim/module/bsdd/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddBSDDProperties, diff --git a/src/bonsai/bonsai/bim/module/bsdd/data.py b/src/bonsai/bonsai/bim/module/bsdd/data.py index 7905ca75c1..6e916d3355 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/data.py +++ b/src/bonsai/bonsai/bim/module/bsdd/data.py @@ -18,8 +18,9 @@ import bpy import ifcopenshell -import ifcopenshell.util.date import ifcopenshell.util.classification +import ifcopenshell.util.date + import bonsai.tool as tool from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/bsdd/operator.py b/src/bonsai/bonsai/bim/module/bsdd/operator.py index 3a6d46d1fa..d3f5533c1a 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/operator.py +++ b/src/bonsai/bonsai/bim/module/bsdd/operator.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . import textwrap +from typing import Any + import bpy import bsdd -import bonsai.tool as tool import ifcopenshell.api.pset import ifcopenshell.util.element + +import bonsai.tool as tool from bonsai.core import bsdd as core -from typing import Any class LoadBSDDDictionaries(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/bsdd/prop.py b/src/bonsai/bonsai/bim/module/bsdd/prop.py index 3b427ba626..347cdab1b2 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/prop.py +++ b/src/bonsai/bonsai/bim/module/bsdd/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy -import bonsai.tool as tool +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.bsdd.data import BSDDData from bonsai.bim.module.classification.data import ClassificationsData from bonsai.bim.prop import Attribute, StrProperty -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import Union, TYPE_CHECKING, Literal def get_active_dictionary(self: "BIMBSDDProperties", context: object) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/bsdd/ui.py b/src/bonsai/bonsai/bim/module/bsdd/ui.py index 39b2f9140e..c6966c01d8 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/ui.py +++ b/src/bonsai/bonsai/bim/module/bsdd/ui.py @@ -17,14 +17,22 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -from bonsai.bim.module.bsdd.data import BSDDData -from bpy.types import Panel, UIList + from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel, UIList + +import bonsai.tool as tool +from bonsai.bim.module.bsdd.data import BSDDData + if TYPE_CHECKING: - from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDDictionary, BSDDClassification, BSDDProperty + from bonsai.bim.module.bsdd.prop import ( + BIMBSDDProperties, + BSDDClassification, + BSDDDictionary, + BSDDProperty, + ) class BIM_PT_bsdd(Panel): diff --git a/src/bonsai/bonsai/bim/module/cad/__init__.py b/src/bonsai/bonsai/bim/module/cad/__init__.py index 601c4da1c3..6ddca2dd96 100644 --- a/src/bonsai/bonsai/bim/module/cad/__init__.py +++ b/src/bonsai/bonsai/bim/module/cad/__init__.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + from . import operator, prop, workspace classes = ( diff --git a/src/bonsai/bonsai/bim/module/cad/operator.py b/src/bonsai/bonsai/bim/module/cad/operator.py index 06f026a577..857d757ca1 100644 --- a/src/bonsai/bonsai/bim/module/cad/operator.py +++ b/src/bonsai/bonsai/bim/module/cad/operator.py @@ -16,17 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import bmesh -import mathutils -import bpy_extras -import bonsai.tool as tool -from mathutils import Vector, Matrix -from math import pi, radians, sin, cos, sqrt -import ifcopenshell.util.unit +from math import cos, pi, radians, sin, sqrt from typing import Union +import bmesh +import bpy +import bpy_extras +import ifcopenshell.util.unit +import mathutils +from mathutils import Matrix, Vector + +import bonsai.tool as tool messages = { "SHARED_VERTEX": "Shared Vertex, no intersection possible", diff --git a/src/bonsai/bonsai/bim/module/cad/prop.py b/src/bonsai/bonsai/bim/module/cad/prop.py index 7247408f00..db737b51dc 100644 --- a/src/bonsai/bonsai/bim/module/cad/prop.py +++ b/src/bonsai/bonsai/bim/module/cad/prop.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -from bonsai.bim.module.model.data import AuthoringData -from bpy.types import PropertyGroup from math import pi from typing import TYPE_CHECKING +import bpy +from bpy.types import PropertyGroup + +from bonsai.bim.module.model.data import AuthoringData + class BIMCadProperties(PropertyGroup): resolution: bpy.props.IntProperty(name="Arc Resolution", min=1, default=1) diff --git a/src/bonsai/bonsai/bim/module/cad/workspace.py b/src/bonsai/bonsai/bim/module/cad/workspace.py index 017f493682..b384463ac2 100644 --- a/src/bonsai/bonsai/bim/module/cad/workspace.py +++ b/src/bonsai/bonsai/bim/module/cad/workspace.py @@ -17,13 +17,15 @@ # along with Bonsai. If not, see . import os +from functools import partial + import bpy -import bonsai.tool as tool -import bonsai.bim.module.type.prop as type_prop import ifcopenshell.util.unit from bpy.types import WorkSpaceTool + +import bonsai.bim.module.type.prop as type_prop +import bonsai.tool as tool from bonsai.bim.module.model.data import AuthoringData, RailingData, RoofData -from functools import partial def load_custom_icons(): diff --git a/src/bonsai/bonsai/bim/module/clash/__init__.py b/src/bonsai/bonsai/bim/module/clash/__init__.py index a3ada1bc72..6bfabacfab 100644 --- a/src/bonsai/bonsai/bim/module/clash/__init__.py +++ b/src/bonsai/bonsai/bim/module/clash/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddClashSet, diff --git a/src/bonsai/bonsai/bim/module/clash/data.py b/src/bonsai/bonsai/bim/module/clash/data.py index b994a1b750..4ecbb229a4 100644 --- a/src/bonsai/bonsai/bim/module/clash/data.py +++ b/src/bonsai/bonsai/bim/module/clash/data.py @@ -16,9 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy import ifcopenshell.util.element + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/clash/decorator.py b/src/bonsai/bonsai/bim/module/clash/decorator.py index 91ecc1fc16..d1d0daf095 100644 --- a/src/bonsai/bonsai/bim/module/clash/decorator.py +++ b/src/bonsai/bonsai/bim/module/clash/decorator.py @@ -17,13 +17,14 @@ # along with Bonsai. If not, see . import blf -import gpu import bmesh -import bonsai.tool as tool +import gpu from bpy.types import SpaceView3D -from mathutils import Vector -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Vector + +import bonsai.tool as tool class ClashDecorator: diff --git a/src/bonsai/bonsai/bim/module/clash/operator.py b/src/bonsai/bonsai/bim/module/clash/operator.py index 3463b8fc10..688568270f 100644 --- a/src/bonsai/bonsai/bim/module/clash/operator.py +++ b/src/bonsai/bonsai/bim/module/clash/operator.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json -import tempfile -import bmesh import logging -import numpy as np -import ifcopenshell -import bonsai.tool as tool -from pathlib import Path -from bpy_extras.io_utils import ExportHelper, ImportHelper +import os +import tempfile from math import radians +from pathlib import Path +from typing import TYPE_CHECKING + +import bmesh +import bpy +import ifcopenshell +import numpy as np +from bpy_extras.io_utils import ExportHelper, ImportHelper from mathutils import Matrix, Vector + +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore from bonsai.bim.module.clash.decorator import ClashDecorator -from typing import TYPE_CHECKING class ExportClashSets(bpy.types.Operator, ExportHelper): diff --git a/src/bonsai/bonsai/bim/module/clash/prop.py b/src/bonsai/bonsai/bim/module/clash/prop.py index a7c6101b73..5f42a400e7 100644 --- a/src/bonsai/bonsai/bim/module/clash/prop.py +++ b/src/bonsai/bonsai/bim/module/clash/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute, BIMFilterGroup -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from ifcopenshell.geom.main import ClashType, CLASH_TYPE_ITEMS +from bpy.types import PropertyGroup +from ifcopenshell.geom.main import CLASH_TYPE_ITEMS, ClashType from mathutils import Vector -from typing import TYPE_CHECKING, Literal, Union + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, BIMFilterGroup, StrProperty class ClashSource(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/clash/ui.py b/src/bonsai/bonsai/bim/module/clash/ui.py index 5e3711efe0..a6ef267d84 100644 --- a/src/bonsai/bonsai/bim/module/clash/ui.py +++ b/src/bonsai/bonsai/bim/module/clash/ui.py @@ -17,15 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -import bonsai.bim.helper -from bpy.types import Panel -from bonsai.bim.module.clash.data import ClashData + from typing import TYPE_CHECKING, assert_never +import bpy +from bpy.types import Panel + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.module.clash.data import ClashData + if TYPE_CHECKING: - from bonsai.bim.module.clash.prop import BIMClashProperties, ClashSet, SmartClashGroup, Clash + from bonsai.bim.module.clash.prop import ( + BIMClashProperties, + Clash, + ClashSet, + SmartClashGroup, + ) class BIM_PT_ifcclash(Panel): diff --git a/src/bonsai/bonsai/bim/module/classification/__init__.py b/src/bonsai/bonsai/bim/module/classification/__init__.py index 6d33b50ee6..155bbdd6ee 100644 --- a/src/bonsai/bonsai/bim/module/classification/__init__.py +++ b/src/bonsai/bonsai/bim/module/classification/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddClassification, diff --git a/src/bonsai/bonsai/bim/module/classification/data.py b/src/bonsai/bonsai/bim/module/classification/data.py index a1fa3a6d58..9685e8faa9 100644 --- a/src/bonsai/bonsai/bim/module/classification/data.py +++ b/src/bonsai/bonsai/bim/module/classification/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Literal, Union + import bpy import ifcopenshell -import ifcopenshell.util.date import ifcopenshell.util.classification +import ifcopenshell.util.date + import bonsai.tool as tool -from typing import Any, Literal, Union from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/classification/operator.py b/src/bonsai/bonsai/bim/module/classification/operator.py index a6fd0c6df5..7bf699cc31 100644 --- a/src/bonsai/bonsai/bim/module/classification/operator.py +++ b/src/bonsai/bonsai/bim/module/classification/operator.py @@ -19,13 +19,14 @@ import bpy import ifcopenshell import ifcopenshell.api -import ifcopenshell.api.pset import ifcopenshell.api.classification +import ifcopenshell.api.pset import ifcopenshell.util.classification import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.bim.helper from bpy_extras.io_utils import ImportHelper + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/classification/prop.py b/src/bonsai/bonsai/bim/module/classification/prop.py index 4e2de0119d..454f861f07 100644 --- a/src/bonsai/bonsai/bim/module/classification/prop.py +++ b/src/bonsai/bonsai/bim/module/classification/prop.py @@ -16,22 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import Attribute -from bonsai.bim.module.classification.data import ClassificationsData, ObjectClassificationsData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.classification.data import ( + ClassificationsData, + ObjectClassificationsData, +) +from bonsai.bim.prop import Attribute def get_available_classifications( diff --git a/src/bonsai/bonsai/bim/module/classification/ui.py b/src/bonsai/bonsai/bim/module/classification/ui.py index 077f97553f..77310be49a 100644 --- a/src/bonsai/bonsai/bim/module/classification/ui.py +++ b/src/bonsai/bonsai/bim/module/classification/ui.py @@ -17,24 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.bim.module.classification.prop as classification_prop -import ifcopenshell.util.classification -from bpy.types import Panel, UIList -from bonsai.bim.module.classification.data import ( - ClassificationsData, - ObjectClassificationsData, - MaterialClassificationsData, - CostClassificationsData, - ZoneClassificationsData, -) from typing import TYPE_CHECKING, Any, Union +import bpy +import ifcopenshell.util.classification +from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.bim.module.classification.prop as classification_prop +import bonsai.tool as tool +from bonsai.bim.module.classification.data import ( + ClassificationsData, + CostClassificationsData, + MaterialClassificationsData, + ObjectClassificationsData, + ZoneClassificationsData, +) + if TYPE_CHECKING: - from bonsai.bim.module.classification.prop import BIMClassificationProperties, ClassificationReference + from bonsai.bim.module.classification.prop import ( + BIMClassificationProperties, + ClassificationReference, + ) class BIM_PT_classifications(Panel): diff --git a/src/bonsai/bonsai/bim/module/constraint/__init__.py b/src/bonsai/bonsai/bim/module/constraint/__init__.py index 54b5183023..858c1da130 100644 --- a/src/bonsai/bonsai/bim/module/constraint/__init__.py +++ b/src/bonsai/bonsai/bim/module/constraint/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.LoadObjectives, diff --git a/src/bonsai/bonsai/bim/module/constraint/data.py b/src/bonsai/bonsai/bim/module/constraint/data.py index 8a92de2c71..d44a7d2a55 100644 --- a/src/bonsai/bonsai/bim/module/constraint/data.py +++ b/src/bonsai/bonsai/bim/module/constraint/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool from ifcopenshell.util.doc import get_entity_doc +import bonsai.tool as tool + def refresh(): ConstraintsData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/constraint/operator.py b/src/bonsai/bonsai/bim/module/constraint/operator.py index 4297642c3b..976f4ff6a3 100644 --- a/src/bonsai/bonsai/bim/module/constraint/operator.py +++ b/src/bonsai/bonsai/bim/module/constraint/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.constraint + import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING def get_active_object(context: bpy.types.Context, obj_name: str) -> bpy.types.Object: diff --git a/src/bonsai/bonsai/bim/module/constraint/prop.py b/src/bonsai/bonsai/bim/module/constraint/prop.py index ec66f78211..c76d48e8a6 100644 --- a/src/bonsai/bonsai/bim/module/constraint/prop.py +++ b/src/bonsai/bonsai/bim/module/constraint/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy -from ifcopenshell.util.doc import get_entity_doc -import bonsai.tool as tool -from bonsai.bim.prop import Attribute -from bonsai.bim.module.constraint.data import ConstraintsData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal +from bpy.types import PropertyGroup +from ifcopenshell.util.doc import get_entity_doc + +import bonsai.tool as tool +from bonsai.bim.module.constraint.data import ConstraintsData +from bonsai.bim.prop import Attribute def get_available_constraint_types(self, context): diff --git a/src/bonsai/bonsai/bim/module/constraint/ui.py b/src/bonsai/bonsai/bim/module/constraint/ui.py index 61b335d782..5ab3d7c93c 100644 --- a/src/bonsai/bonsai/bim/module/constraint/ui.py +++ b/src/bonsai/bonsai/bim/module/constraint/ui.py @@ -17,14 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.tool as tool -from bpy.types import Panel, UIList -from bonsai.bim.helper import draw_attributes -from bonsai.bim.module.constraint.data import ConstraintsData, ObjectConstraintsData + from typing import TYPE_CHECKING +from bpy.types import Panel, UIList + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes +from bonsai.bim.module.constraint.data import ConstraintsData, ObjectConstraintsData + if TYPE_CHECKING: - from bonsai.bim.module.constraint.prop import BIMConstraintProperties, BIMObjectConstraintProperties, Constraint + from bonsai.bim.module.constraint.prop import ( + BIMConstraintProperties, + BIMObjectConstraintProperties, + Constraint, + ) class BIM_PT_constraints(Panel): diff --git a/src/bonsai/bonsai/bim/module/context/__init__.py b/src/bonsai/bonsai/bim/module/context/__init__.py index 65665ae290..da24e53f55 100644 --- a/src/bonsai/bonsai/bim/module/context/__init__.py +++ b/src/bonsai/bonsai/bim/module/context/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddContext, diff --git a/src/bonsai/bonsai/bim/module/context/data.py b/src/bonsai/bonsai/bim/module/context/data.py index c0b2143801..ade8061a4b 100644 --- a/src/bonsai/bonsai/bim/module/context/data.py +++ b/src/bonsai/bonsai/bim/module/context/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifcopenshell from typing import Any +import bpy +import ifcopenshell + +import bonsai.tool as tool + def refresh(): ContextData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/context/operator.py b/src/bonsai/bonsai/bim/module/context/operator.py index fbf1f17963..88483dfc0c 100644 --- a/src/bonsai/bonsai/bim/module/context/operator.py +++ b/src/bonsai/bonsai/bim/module/context/operator.py @@ -17,8 +17,9 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool + import bonsai.core.context as core +import bonsai.tool as tool class AddContext(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/context/prop.py b/src/bonsai/bonsai/bim/module/context/prop.py index 3a6f3c226f..ff73c53a5a 100644 --- a/src/bonsai/bonsai/bim/module/context/prop.py +++ b/src/bonsai/bonsai/bim/module/context/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.context.data import ContextData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +from bonsai.bim.module.context.data import ContextData +from bonsai.bim.prop import Attribute, StrProperty class BIMContextProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/context/ui.py b/src/bonsai/bonsai/bim/module/context/ui.py index e8d0d337b4..3090da38fc 100644 --- a/src/bonsai/bonsai/bim/module/context/ui.py +++ b/src/bonsai/bonsai/bim/module/context/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.bim.helper import bonsai.tool as tool from bonsai.bim.module.context.data import ContextData diff --git a/src/bonsai/bonsai/bim/module/cost/__init__.py b/src/bonsai/bonsai/bim/module/cost/__init__.py index 6f42a71bf9..9378a68ee1 100644 --- a/src/bonsai/bonsai/bim/module/cost/__init__.py +++ b/src/bonsai/bonsai/bim/module/cost/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddCostColumn, diff --git a/src/bonsai/bonsai/bim/module/cost/data.py b/src/bonsai/bonsai/bim/module/cost/data.py index 4b5198bb03..aab9ea9231 100644 --- a/src/bonsai/bonsai/bim/module/cost/data.py +++ b/src/bonsai/bonsai/bim/module/cost/data.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell import ifcopenshell.util.cost import ifcopenshell.util.date import ifcopenshell.util.element import ifcopenshell.util.unit -import bonsai.tool as tool from ifcopenshell.util.doc import get_entity_doc, get_predefined_type_doc -from typing import Any, Union + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/cost/operator.py b/src/bonsai/bonsai/bim/module/cost/operator.py index 644871488c..48b672a2c2 100644 --- a/src/bonsai/bonsai/bim/module/cost/operator.py +++ b/src/bonsai/bonsai/bim/module/cost/operator.py @@ -18,16 +18,16 @@ # pyright: reportUnnecessaryTypeIgnoreComment=error -import bpy import textwrap -import ifcopenshell.api.nest -import bonsai.tool as tool -from bpy_extras.io_utils import ImportHelper, ExportHelper -import bonsai.tool as tool -import bonsai.core.cost as core from pathlib import Path +from typing import TYPE_CHECKING, Literal, get_args -from typing import get_args, TYPE_CHECKING, Literal +import bpy +import ifcopenshell.api.nest +from bpy_extras.io_utils import ExportHelper, ImportHelper + +import bonsai.core.cost as core +import bonsai.tool as tool class AddCostSchedule(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/cost/prop.py b/src/bonsai/bonsai/bim/module/cost/prop.py index 3ce30e665e..121ca617e7 100644 --- a/src/bonsai/bonsai/bim/module/cost/prop.py +++ b/src/bonsai/bonsai/bim/module/cost/prop.py @@ -16,25 +16,31 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy import ifcopenshell.api import ifcopenshell.api.cost -import bonsai.tool as tool -from bonsai.bim.module.classification.data import CostClassificationsData -from bonsai.bim.module.cost.data import CostSchedulesData, CostItemRatesData, CostItemQuantitiesData -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.classification.data import CostClassificationsData +from bonsai.bim.module.cost.data import ( + CostItemQuantitiesData, + CostItemRatesData, + CostSchedulesData, +) +from bonsai.bim.prop import Attribute, StrProperty def get_schedule_of_rates(self: "BIMCostProperties", context: bpy.types.Context) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/cost/ui.py b/src/bonsai/bonsai/bim/module/cost/ui.py index e8eb58a855..73a578171f 100644 --- a/src/bonsai/bonsai/bim/module/cost/ui.py +++ b/src/bonsai/bonsai/bim/module/cost/ui.py @@ -17,13 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.bim.module.cost.prop as CostProp import bonsai.tool as tool -from bpy.types import Panel, UIList from bonsai.bim.module.cost.data import CostSchedulesData -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.cost.prop import BIMCostProperties, CostItemQuantity diff --git a/src/bonsai/bonsai/bim/module/covering/__init__.py b/src/bonsai/bonsai/bim/module/covering/__init__.py index 5e00a6dfbe..3cec5084c4 100644 --- a/src/bonsai/bonsai/bim/module/covering/__init__.py +++ b/src/bonsai/bonsai/bim/module/covering/__init__.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + from . import prop, workspace classes = ( diff --git a/src/bonsai/bonsai/bim/module/covering/prop.py b/src/bonsai/bonsai/bim/module/covering/prop.py index 3dc65903aa..3655d50c9f 100644 --- a/src/bonsai/bonsai/bim/module/covering/prop.py +++ b/src/bonsai/bonsai/bim/module/covering/prop.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy from bpy.types import PropertyGroup -from typing import TYPE_CHECKING class BIMCoveringProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/covering/workspace.py b/src/bonsai/bonsai/bim/module/covering/workspace.py index 3e44b0476d..68b2704166 100644 --- a/src/bonsai/bonsai/bim/module/covering/workspace.py +++ b/src/bonsai/bonsai/bim/module/covering/workspace.py @@ -18,13 +18,15 @@ import os +from functools import partial + import bpy import ifcopenshell +from bpy.types import WorkSpaceTool + import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.model.data import AuthoringData -from bpy.types import WorkSpaceTool -from functools import partial class CoveringTool(WorkSpaceTool): diff --git a/src/bonsai/bonsai/bim/module/covetool/__init__.py b/src/bonsai/bonsai/bim/module/covetool/__init__.py index 6697f24301..beb75bb7af 100644 --- a/src/bonsai/bonsai/bim/module/covetool/__init__.py +++ b/src/bonsai/bonsai/bim/module/covetool/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( prop.CoveToolProject, diff --git a/src/bonsai/bonsai/bim/module/covetool/operator.py b/src/bonsai/bonsai/bim/module/covetool/operator.py index cccb164611..fa298ada9c 100644 --- a/src/bonsai/bonsai/bim/module/covetool/operator.py +++ b/src/bonsai/bonsai/bim/module/covetool/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from math import atan2, degrees + +import bpy import ifcopenshell import ifcopenshell.util.element + import bonsai.tool as tool -from math import degrees, atan2 from .api import Api diff --git a/src/bonsai/bonsai/bim/module/covetool/prop.py b/src/bonsai/bonsai/bim/module/covetool/prop.py index 06444de29f..42e59466d9 100644 --- a/src/bonsai/bonsai/bim/module/covetool/prop.py +++ b/src/bonsai/bonsai/bim/module/covetool/prop.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy from typing import TYPE_CHECKING +import bpy + class CoveToolProject(bpy.types.PropertyGroup): run_set: bpy.props.StringProperty(name="Run Set") diff --git a/src/bonsai/bonsai/bim/module/covetool/ui.py b/src/bonsai/bonsai/bim/module/covetool/ui.py index e26ac1338a..1a7015b139 100644 --- a/src/bonsai/bonsai/bim/module/covetool/ui.py +++ b/src/bonsai/bonsai/bim/module/covetool/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy.types -import bonsai.tool as tool + from typing import TYPE_CHECKING +import bpy.types + +import bonsai.tool as tool + if TYPE_CHECKING: - from bonsai.bim.module.covetool.prop import CoveToolProperties, CoveToolProject + from bonsai.bim.module.covetool.prop import CoveToolProject, CoveToolProperties class BIM_PT_covetool(bpy.types.Panel): diff --git a/src/bonsai/bonsai/bim/module/csv/__init__.py b/src/bonsai/bonsai/bim/module/csv/__init__.py index 7a6b99906e..f544445b20 100644 --- a/src/bonsai/bonsai/bim/module/csv/__init__.py +++ b/src/bonsai/bonsai/bim/module/csv/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddCsvAttribute, diff --git a/src/bonsai/bonsai/bim/module/csv/operator.py b/src/bonsai/bonsai/bim/module/csv/operator.py index 34e20f6d9c..d42e8d3852 100644 --- a/src/bonsai/bonsai/bim/module/csv/operator.py +++ b/src/bonsai/bonsai/bim/module/csv/operator.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import json -import ifccsv import logging +import os import tempfile +from collections import Counter +from typing import TYPE_CHECKING + +import bpy +import ifccsv import ifcopenshell import ifcopenshell.util.selector -import bonsai.tool as tool -import bonsai.bim.module.drawing.scheduler as scheduler from bpy_extras.io_utils import ExportHelper, ImportHelper + +import bonsai.bim.module.drawing.scheduler as scheduler +import bonsai.tool as tool from bonsai.bim.handler import refresh_ui_data -from typing import TYPE_CHECKING -from collections import Counter if TYPE_CHECKING: import pandas as pd diff --git a/src/bonsai/bonsai/bim/module/csv/prop.py b/src/bonsai/bonsai/bim/module/csv/prop.py index 371776bef2..a698f89b76 100644 --- a/src/bonsai/bonsai/bim/module/csv/prop.py +++ b/src/bonsai/bonsai/bim/module/csv/prop.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy -from bonsai.bim.prop import StrProperty, BIMFilterGroup -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal +from bpy.types import PropertyGroup + +from bonsai.bim.prop import BIMFilterGroup, StrProperty class CsvAttribute(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/csv/ui.py b/src/bonsai/bonsai/bim/module/csv/ui.py index a407efc7d1..c40be1b037 100644 --- a/src/bonsai/bonsai/bim/module/csv/ui.py +++ b/src/bonsai/bonsai/bim/module/csv/ui.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from bpy.types import Panel + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel from bonsai.bim.module.search.data import SearchData diff --git a/src/bonsai/bonsai/bim/module/debug/__init__.py b/src/bonsai/bonsai/bim/module/debug/__init__.py index c01cf03275..bd3ecac4f6 100644 --- a/src/bonsai/bonsai/bim/module/debug/__init__.py +++ b/src/bonsai/bonsai/bim/module/debug/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ChangeLogLevel, diff --git a/src/bonsai/bonsai/bim/module/debug/operator.py b/src/bonsai/bonsai/bim/module/debug/operator.py index 0820d5e3d6..6e30a3cc0f 100644 --- a/src/bonsai/bonsai/bim/module/debug/operator.py +++ b/src/bonsai/bonsai/bim/module/debug/operator.py @@ -16,14 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import sys -import bpy -import time -import random import logging -import subprocess +import os import platform +import random +import subprocess +import sys +import time +from collections import defaultdict +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset @@ -32,18 +36,16 @@ import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.unit -import bonsai.tool as tool +from bpy_extras.io_utils import ExportHelper, ImportHelper + +import bonsai.bim.handler +import bonsai.bim.import_ifc as import_ifc import bonsai.core.debug as core import bonsai.core.profile import bonsai.core.type -import bonsai.bim.handler -import bonsai.bim.import_ifc as import_ifc -from collections import defaultdict -from bpy_extras.io_utils import ImportHelper, ExportHelper -from pathlib import Path -from bonsai import get_debug_info, format_debug_info +import bonsai.tool as tool +from bonsai import format_debug_info, get_debug_info from bonsai.bim.ifc import IfcStore -from typing import get_args, Union, Any, TYPE_CHECKING, Literal, get_args, assert_never if TYPE_CHECKING: from bonsai.bim.prop import Attribute diff --git a/src/bonsai/bonsai/bim/module/debug/prop.py b/src/bonsai/bonsai/bim/module/debug/prop.py index 5a28b22f79..e52ec5ff7d 100644 --- a/src/bonsai/bonsai/bim/module/debug/prop.py +++ b/src/bonsai/bonsai/bim/module/debug/prop.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, get_args +from bpy.types import PropertyGroup + +from bonsai.bim.prop import Attribute, StrProperty DisplayType = Literal["BOUNDS", "WIRE", "SOLID", "TEXTURED"] diff --git a/src/bonsai/bonsai/bim/module/debug/ui.py b/src/bonsai/bonsai/bim/module/debug/ui.py index 58af7b9f72..5ffa99cf35 100644 --- a/src/bonsai/bonsai/bim/module/debug/ui.py +++ b/src/bonsai/bonsai/bim/module/debug/ui.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool from bpy.types import Panel +import bonsai.tool as tool + class BIM_PT_debug(Panel): bl_label = "Debug" diff --git a/src/bonsai/bonsai/bim/module/demo/__init__.py b/src/bonsai/bonsai/bim/module/demo/__init__.py index 705e0be046..7dc5f18ff7 100644 --- a/src/bonsai/bonsai/bim/module/demo/__init__.py +++ b/src/bonsai/bonsai/bim/module/demo/__init__.py @@ -28,7 +28,8 @@ # system when the add-on loads. This is where it happens. import bpy -from . import ui, prop, operator + +from . import operator, prop, ui # You'll need to provide a list of every one of your classes here. If you forget # to specify your class, it won't load and you won't be able to use that diff --git a/src/bonsai/bonsai/bim/module/demo/operator.py b/src/bonsai/bonsai/bim/module/demo/operator.py index 001c8de692..fb1927c9bd 100644 --- a/src/bonsai/bonsai/bim/module/demo/operator.py +++ b/src/bonsai/bonsai/bim/module/demo/operator.py @@ -28,8 +28,9 @@ # "Operators", since they correlate to a single user operation. import bpy -import bonsai.tool as tool + import bonsai.core.demo as core +import bonsai.tool as tool # Each button correlates to a class like the one below. In this case, we're diff --git a/src/bonsai/bonsai/bim/module/demo/prop.py b/src/bonsai/bonsai/bim/module/demo/prop.py index 83df8ccfda..f206fe3156 100644 --- a/src/bonsai/bonsai/bim/module/demo/prop.py +++ b/src/bonsai/bonsai/bim/module/demo/prop.py @@ -33,20 +33,20 @@ from typing import TYPE_CHECKING import bpy -from bpy.types import PropertyGroup # Properties have many different data types. We won't use all of them in this # demo module, but this is a list for your reference. from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup # All properties must belong in a property group. Usually, you'd have a group diff --git a/src/bonsai/bonsai/bim/module/demo/ui.py b/src/bonsai/bonsai/bim/module/demo/ui.py index 6005814cfa..cade6dbf03 100644 --- a/src/bonsai/bonsai/bim/module/demo/ui.py +++ b/src/bonsai/bonsai/bim/module/demo/ui.py @@ -27,6 +27,7 @@ # panels, buttons, labels, and input fields are laid out. import bpy + import bonsai.tool as tool from bonsai.bim.module.demo.data import DemoData diff --git a/src/bonsai/bonsai/bim/module/diff/__init__.py b/src/bonsai/bonsai/bim/module/diff/__init__.py index 2cfb1b3c7b..fdeaf49596 100644 --- a/src/bonsai/bonsai/bim/module/diff/__init__.py +++ b/src/bonsai/bonsai/bim/module/diff/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcDiff, diff --git a/src/bonsai/bonsai/bim/module/diff/data.py b/src/bonsai/bonsai/bim/module/diff/data.py index ac3e545f43..9fce7f38ba 100644 --- a/src/bonsai/bonsai/bim/module/diff/data.py +++ b/src/bonsai/bonsai/bim/module/diff/data.py @@ -16,8 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/diff/operator.py b/src/bonsai/bonsai/bim/module/diff/operator.py index 954e43ac1e..330deed410 100644 --- a/src/bonsai/bonsai/bim/module/diff/operator.py +++ b/src/bonsai/bonsai/bim/module/diff/operator.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json import logging + +import bpy import ifcdiff import ifcopenshell +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.bim.handler import bonsai.bim.import_ifc import bonsai.tool as tool -from bpy_extras.io_utils import ImportHelper, ExportHelper from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/diff/prop.py b/src/bonsai/bonsai/bim/module/diff/prop.py index 61da124a7c..c8f9d48c84 100644 --- a/src/bonsai/bonsai/bim/module/diff/prop.py +++ b/src/bonsai/bonsai/bim/module/diff/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy -from bonsai.bim.prop import StrProperty, BIMFilterGroup -from bonsai.bim.module.diff.data import DiffData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, get_args +from bpy.types import PropertyGroup + +from bonsai.bim.module.diff.data import DiffData +from bonsai.bim.prop import BIMFilterGroup, StrProperty def update_diff_json_file(self: "DiffProperties", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/diff/ui.py b/src/bonsai/bonsai/bim/module/diff/ui.py index 91e0a6b48e..383345e8b5 100644 --- a/src/bonsai/bonsai/bim/module/diff/ui.py +++ b/src/bonsai/bonsai/bim/module/diff/ui.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . from bpy.types import Panel -from bonsai.bim.module.diff.data import DiffData + import bonsai.bim.helper import bonsai.tool as tool +from bonsai.bim.module.diff.data import DiffData class BIM_PT_diff(Panel): diff --git a/src/bonsai/bonsai/bim/module/document/__init__.py b/src/bonsai/bonsai/bim/module/document/__init__.py index 3881148a18..ac3bdfb1a3 100644 --- a/src/bonsai/bonsai/bim/module/document/__init__.py +++ b/src/bonsai/bonsai/bim/module/document/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddDocumentReference, diff --git a/src/bonsai/bonsai/bim/module/document/data.py b/src/bonsai/bonsai/bim/module/document/data.py index b68c118e56..97b4a1f206 100644 --- a/src/bonsai/bonsai/bim/module/document/data.py +++ b/src/bonsai/bonsai/bim/module/document/data.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.util.schema -import bonsai.tool as tool from natsort import natsorted +import bonsai.tool as tool + def refresh(): DocumentData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/document/operator.py b/src/bonsai/bonsai/bim/module/document/operator.py index 447d3b1693..a4e5cfc4ac 100644 --- a/src/bonsai/bonsai/bim/module/document/operator.py +++ b/src/bonsai/bonsai/bim/module/document/operator.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy + import bonsai.bim.handler -import bonsai.tool as tool import bonsai.core.document as core +import bonsai.tool as tool from bonsai.bim.module.document.data import DocumentData, ObjectDocumentData @@ -264,8 +266,8 @@ class OpenIFCDocument(bpy.types.Operator): uri: bpy.props.StringProperty(name="URI") def execute(self, context): - import subprocess import os + import subprocess if not self.uri or not self.uri.lower().startswith("file://"): self.report({"ERROR"}, "Only local file:// URIs are supported") diff --git a/src/bonsai/bonsai/bim/module/document/prop.py b/src/bonsai/bonsai/bim/module/document/prop.py index 93369b546d..b1eb41cc2e 100644 --- a/src/bonsai/bonsai/bim/module/document/prop.py +++ b/src/bonsai/bonsai/bim/module/document/prop.py @@ -1,20 +1,21 @@ +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.document.data import refresh -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from bonsai.bim.module.document.data import DocumentData -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.document.data import DocumentData, refresh +from bonsai.bim.prop import Attribute, StrProperty def update_document_name(self: "Document", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/document/ui.py b/src/bonsai/bonsai/bim/module/document/ui.py index 7688399732..eda5d34a1d 100644 --- a/src/bonsai/bonsai/bim/module/document/ui.py +++ b/src/bonsai/bonsai/bim/module/document/ui.py @@ -17,8 +17,9 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes from bonsai.bim.module.document.data import DocumentData, ObjectDocumentData diff --git a/src/bonsai/bonsai/bim/module/drawing/__init__.py b/src/bonsai/bonsai/bim/module/drawing/__init__.py index 93316a0d01..67a9ed0853 100644 --- a/src/bonsai/bonsai/bim/module/drawing/__init__.py +++ b/src/bonsai/bonsai/bim/module/drawing/__init__.py @@ -17,9 +17,11 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, handler, gizmos, workspace + import bonsai.tool as tool +from . import gizmos, handler, operator, prop, ui, workspace + classes = ( operator.ActivateDrawing, operator.ActivateDrawingFromSheet, diff --git a/src/bonsai/bonsai/bim/module/drawing/annotation.py b/src/bonsai/bonsai/bim/module/drawing/annotation.py index 9589b9ac00..18d914872a 100644 --- a/src/bonsai/bonsai/bim/module/drawing/annotation.py +++ b/src/bonsai/bonsai/bim/module/drawing/annotation.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import math -import bmesh -import bonsai.tool as tool -import ifcopenshell.util.element +import os from pathlib import Path -from mathutils import Vector, Matrix from typing import Optional +import bmesh +import bpy +import ifcopenshell.util.element +from mathutils import Matrix, Vector + +import bonsai.tool as tool + class Annotator: @staticmethod diff --git a/src/bonsai/bonsai/bim/module/drawing/data.py b/src/bonsai/bonsai/bim/module/drawing/data.py index 4941e7f51c..ed457a7bbf 100644 --- a/src/bonsai/bonsai/bim/module/drawing/data.py +++ b/src/bonsai/bonsai/bim/module/drawing/data.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json -import ifcopenshell.util.element -import ifcopenshell.util.representation -import ifcopenshell.util.unit -import ifcopenshell.util.selector -import bonsai.tool as tool +import os from pathlib import Path from typing import Any, Union + +import bpy +import ifcopenshell.util.element +import ifcopenshell.util.representation +import ifcopenshell.util.selector +import ifcopenshell.util.unit from natsort import natsorted +import bonsai.tool as tool + def refresh(): ProductAssignmentsData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/drawing/decoration.py b/src/bonsai/bonsai/bim/module/drawing/decoration.py index fc3b9ecbf6..0a6bc967bf 100644 --- a/src/bonsai/bonsai/bim/module/drawing/decoration.py +++ b/src/bonsai/bonsai/bim/module/drawing/decoration.py @@ -16,33 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu -import bpy -import blf -import os import math +import os +from collections.abc import Generator, Iterator +from functools import cache +from math import acos, atan, cos, degrees, pi, radians, sin +from pathlib import Path +from timeit import default_timer as timer +from typing import Optional, Union + +import blf import bmesh -import shapely -import numpy as np +import bpy +import gpu import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.bim.module.drawing.helper as helper -from pathlib import Path -from math import pi, sin, cos, acos, atan, degrees, radians +import numpy as np +import shapely from bpy.types import SpaceView3D -from mathutils import Vector, Matrix from bpy_extras.view3d_utils import location_3d_to_region_2d from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.bim.module.drawing.helper as helper +import bonsai.tool as tool from bonsai.bim.module.drawing.data import DecoratorData, DrawingsData -from bonsai.bim.module.drawing.shaders import add_verts_sequence, add_offsets from bonsai.bim.module.drawing.helper import format_distance -from timeit import default_timer as timer -from functools import cache -from typing import Optional, Union -from collections.abc import Generator, Iterator +from bonsai.bim.module.drawing.shaders import add_offsets, add_verts_sequence UNSPECIAL_ELEMENT_COLOR = (0.2, 0.2, 0.2, 1) # GREY diff --git a/src/bonsai/bonsai/bim/module/drawing/gizmos.py b/src/bonsai/bonsai/bim/module/drawing/gizmos.py index 3b25a0b12a..6624d2010c 100644 --- a/src/bonsai/bonsai/bim/module/drawing/gizmos.py +++ b/src/bonsai/bonsai/bim/module/drawing/gizmos.py @@ -132,28 +132,32 @@ __all__ = [ # noqa: RUF022 (unsorted `__all__`) "ExtrusionWidget", ] -from typing import Any, Literal, Protocol, runtime_checkable, get_args +import math from collections.abc import Callable, Iterator +from dataclasses import dataclass from enum import Enum +from typing import Any, Literal, Protocol, get_args, runtime_checkable import blf import bpy import gpu -import math import numpy as np from bpy import types -from dataclasses import dataclass -from mathutils import Vector, Matrix -from mathutils.kdtree import KDTree -from mathutils.geometry import intersect_line_line -from bpy_extras.view3d_utils import region_2d_to_vector_3d, region_2d_to_origin_3d, location_3d_to_region_2d from bpy_extras import view3d_utils +from bpy_extras.view3d_utils import ( + location_3d_to_region_2d, + region_2d_to_origin_3d, + region_2d_to_vector_3d, +) from gpu_extras.batch import batch_for_shader -import bonsai.tool as tool -from bonsai.tool.unit import parse_distance_string -from bonsai.bim.module.drawing.shaders import ExtrusionGuidesShader from ifcopenshell.util.unit import si_conversions +from mathutils import Matrix, Vector +from mathutils.geometry import intersect_line_line +from mathutils.kdtree import KDTree +import bonsai.tool as tool +from bonsai.bim.module.drawing.shaders import ExtrusionGuidesShader +from bonsai.tool.unit import parse_distance_string SNAP_POINT_SIZE = 10.0 SNAP_POINT_COLOR = (1.0, 0.5, 0.0, 1.0) diff --git a/src/bonsai/bonsai/bim/module/drawing/handler.py b/src/bonsai/bonsai/bim/module/drawing/handler.py index 75bf62d506..026d274fb3 100644 --- a/src/bonsai/bonsai/bim/module/drawing/handler.py +++ b/src/bonsai/bonsai/bim/module/drawing/handler.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy +from bpy.app.handlers import persistent + import bonsai.bim.module.drawing.decoration as decoration import bonsai.tool as tool -from bpy.app.handlers import persistent @persistent diff --git a/src/bonsai/bonsai/bim/module/drawing/helper.py b/src/bonsai/bonsai/bim/module/drawing/helper.py index 4d99d6c91b..ee8ecf805d 100644 --- a/src/bonsai/bonsai/bim/module/drawing/helper.py +++ b/src/bonsai/bonsai/bim/module/drawing/helper.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import ifcopenshell.util.element -import mathutils.geometry -import ifcopenshell -import ifcopenshell.util.unit -import bonsai.tool as tool -from mathutils import Vector from typing import Union +import bpy +import ifcopenshell +import ifcopenshell.util.element +import ifcopenshell.util.unit +import mathutils.geometry +from mathutils import Vector + +import bonsai.tool as tool + # Code taken and updated from https://blenderartists.org/t/detecting-intersection-of-bounding-boxes/457520/2 diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 936225099b..365ff90ee3 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -16,58 +16,73 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import json -import re -import time -import bmesh -import shutil import hashlib -import shapely -import shapely.ops -import subprocess -import numpy as np +import json import multiprocessing +import os +import re +import shutil +import subprocess +import time +from math import radians +from pathlib import Path +from timeit import default_timer as timer +from typing import ( + TYPE_CHECKING, + Any, + Literal, + NamedTuple, + Optional, + TypedDict, + Union, + get_args, +) + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.document import ifcopenshell.api.pset import ifcopenshell.api.style -import ifcopenshell.ifcopenshell_wrapper import ifcopenshell.geom +import ifcopenshell.ifcopenshell_wrapper import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.unit -import bonsai.bim.helper +import numpy as np +import shapely +import shapely.ops +from bpy_extras.image_utils import load_image +from bpy_extras.io_utils import ImportHelper +from lxml import etree +from mathutils import Color, Matrix, Vector + +import bonsai.bim.export_ifc import bonsai.bim.handler -import bonsai.tool as tool -import bonsai.core.geometry -import bonsai.core.drawing as core -import bonsai.bim.module.drawing.svgwriter as svgwriter +import bonsai.bim.helper import bonsai.bim.module.drawing.annotation as annotation import bonsai.bim.module.drawing.sheeter as sheeter -import bonsai.bim.export_ifc -from bpy_extras.io_utils import ImportHelper -from bonsai.bim.module.drawing.decoration import CutDecorator +import bonsai.bim.module.drawing.svgwriter as svgwriter +import bonsai.core.drawing as core +import bonsai.core.geometry +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore from bonsai.bim.module.drawing.data import DecoratorData, ElementValuesData +from bonsai.bim.module.drawing.decoration import CutDecorator +from bonsai.bim.module.drawing.prop import ( + RASTER_STYLE_PROPERTIES_EXCLUDE, + RasterStyleProperty, +) from bonsai.bim.module.drawing.ui import get_current_product_for_element_values from bonsai.bim.prop import StrProperty -from typing import NamedTuple, Union, Optional, Literal, TYPE_CHECKING, Any, TypedDict, get_args -from lxml import etree -from math import radians -from mathutils import Vector, Color, Matrix -from timeit import default_timer as timer -from bonsai.bim.module.drawing.prop import RasterStyleProperty, RASTER_STYLE_PROPERTIES_EXCLUDE -from bonsai.bim.ifc import IfcStore -from pathlib import Path -from bpy_extras.image_utils import load_image if TYPE_CHECKING: + from bpy.stub_internal import rna_enums + from bonsai.bim.module.drawing.prop import RenderType from bonsai.bim.module.project.prop import Link - from bpy.stub_internal import rna_enums cwd = os.path.dirname(os.path.realpath(__file__)) diff --git a/src/bonsai/bonsai/bim/module/drawing/prop.py b/src/bonsai/bonsai/bim/module/drawing/prop.py index 018c0a634a..3b7040bc02 100644 --- a/src/bonsai/bonsai/bim/module/drawing/prop.py +++ b/src/bonsai/bonsai/bim/module/drawing/prop.py @@ -16,39 +16,45 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import json import enum +import json +import os +from collections.abc import Callable +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.core.drawing as core -import bonsai.bim.module.drawing.annotation as annotation -import bonsai.bim.module.drawing.decoration as decoration -from mathutils import Matrix -from bonsai.bim.prop import BIMFilterGroup -from bonsai.bim.module.drawing.data import DrawingsData, DecoratorData, SheetsData, AnnotationData, ElementValuesData -from bonsai.bim.module.drawing.data import refresh as refresh_drawing_data -from pathlib import Path -from bonsai.bim.prop import Attribute, StrProperty -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + BoolVectorProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, - BoolVectorProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, Any, get_args, Union -from collections.abc import Callable +from bpy.types import PropertyGroup +from mathutils import Matrix +import bonsai.bim.module.drawing.annotation as annotation +import bonsai.bim.module.drawing.decoration as decoration +import bonsai.core.drawing as core +import bonsai.tool as tool +from bonsai.bim.module.drawing.data import ( + AnnotationData, + DecoratorData, + DrawingsData, + ElementValuesData, + SheetsData, +) +from bonsai.bim.module.drawing.data import refresh as refresh_drawing_data +from bonsai.bim.prop import Attribute, BIMFilterGroup, StrProperty diagram_scales_enum = [] diff --git a/src/bonsai/bonsai/bim/module/drawing/scheduler.py b/src/bonsai/bonsai/bim/module/drawing/scheduler.py index da80a46126..3b120e8d99 100644 --- a/src/bonsai/bonsai/bim/module/drawing/scheduler.py +++ b/src/bonsai/bonsai/bim/module/drawing/scheduler.py @@ -18,22 +18,23 @@ import os import re -import bpy import string -import svgwrite +from pathlib import Path +from textwrap import wrap + +import bpy import openpyxl import openpyxl.cell # Unnecessary, bug in typeshed. import openpyxl.utils # Unnecessary, bug in typeshed. -import bonsai.tool as tool - -from bonsai.bim.module.drawing.svgwriter import SvgWriter +import svgwrite from odf.opendocument import load as load_ods -from odf.table import Table, TableRow, TableColumn, TableCell -from odf.text import P from odf.style import Style -from textwrap import wrap -from pathlib import Path +from odf.table import Table, TableCell, TableColumn, TableRow +from odf.text import P + +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.drawing.svgwriter import SvgWriter DEBUG = False diff --git a/src/bonsai/bonsai/bim/module/drawing/shaders.py b/src/bonsai/bonsai/bim/module/drawing/shaders.py index 020fc53147..2efd6ea285 100644 --- a/src/bonsai/bonsai/bim/module/drawing/shaders.py +++ b/src/bonsai/bonsai/bim/module/drawing/shaders.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -from gpu_extras.batch import batch_for_shader import gpu +from gpu_extras.batch import batch_for_shader from mathutils import Vector - # NOTES: # Since Metal doesn't support geometry shaders we stick to builtin shaders # and generate all geometry data in python before passing it to the shader. diff --git a/src/bonsai/bonsai/bim/module/drawing/sheeter.py b/src/bonsai/bonsai/bim/module/drawing/sheeter.py index a3ec74159a..7d8ebb67f4 100644 --- a/src/bonsai/bonsai/bim/module/drawing/sheeter.py +++ b/src/bonsai/bonsai/bim/module/drawing/sheeter.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import uuid -import shutil import ntpath -import pystache +import os +import re +import shutil import urllib.parse +import uuid import xml.etree.ElementTree as ET -import bonsai.tool as tool -import ifcopenshell.util.geolocation from pathlib import Path from xml.dom import minidom + +import bpy +import ifcopenshell.util.geolocation +import pystache from mathutils import Vector -import re + +import bonsai.tool as tool VIEW_TITLE_OFFSET_Y = 5 DRAWING_PADDING = 10 diff --git a/src/bonsai/bonsai/bim/module/drawing/svgwriter.py b/src/bonsai/bonsai/bim/module/drawing/svgwriter.py index d1a3897a20..dac8e54a61 100644 --- a/src/bonsai/bonsai/bim/module/drawing/svgwriter.py +++ b/src/bonsai/bonsai/bim/module/drawing/svgwriter.py @@ -16,33 +16,34 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import math import os import re -import bpy -import math -import bmesh import shutil -from bpy.types import SplineBezierPoints, SplinePoints -import mathutils import xml.etree.ElementTree as ET -import svgwrite -import svgwrite.container -import svgwrite.text +from collections.abc import Callable, Sequence +from math import acos, atan, ceil, degrees, pi +from pathlib import Path +from typing import Optional, Self, Union + +import bmesh +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.bim.module.drawing.helper as helper -from bonsai.bim.module.drawing.data import DrawingsData -from bonsai.bim.module.drawing.data import DecoratorData -from math import pi, ceil, atan, degrees, acos -from mathutils import geometry, Vector -from typing import Optional, Self, Union -from collections.abc import Callable, Sequence -from pathlib import Path +import mathutils +import svgwrite +import svgwrite.container +import svgwrite.text +from bpy.types import SplineBezierPoints, SplinePoints from markdown_it import MarkdownIt +from mathutils import Vector, geometry + +import bonsai.bim.module.drawing.helper as helper +import bonsai.tool as tool +from bonsai.bim.module.drawing.data import DecoratorData, DrawingsData class External(svgwrite.container.Group): diff --git a/src/bonsai/bonsai/bim/module/drawing/ui.py b/src/bonsai/bonsai/bim/module/drawing/ui.py index d230add8f5..45ae50beb4 100644 --- a/src/bonsai/bonsai/bim/module/drawing/ui.py +++ b/src/bonsai/bonsai/bim/module/drawing/ui.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Optional, Union + import bpy +from bpy.types import Panel + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel from bonsai.bim.module.drawing.data import ( - ProductAssignmentsData, - SheetsData, + DecoratorData, DocumentsData, DrawingsData, ElementFiltersData, - DecoratorData, ElementValuesData, + ProductAssignmentsData, + SheetsData, ) -from typing import TYPE_CHECKING, Union, Optional if TYPE_CHECKING: from bonsai.bim.module.drawing.prop import DocProperties, Drawing, Sheet diff --git a/src/bonsai/bonsai/bim/module/drawing/workspace.py b/src/bonsai/bonsai/bim/module/drawing/workspace.py index ae593d0873..5796c20303 100644 --- a/src/bonsai/bonsai/bim/module/drawing/workspace.py +++ b/src/bonsai/bonsai/bim/module/drawing/workspace.py @@ -18,18 +18,20 @@ import os +from functools import partial + import bpy import ifcopenshell.api.group import ifcopenshell.util.element +import ifcopenshell.util.representation +from bpy.types import WorkSpaceTool + +import bonsai.core.drawing as core import bonsai.core.geometry import bonsai.core.type -import bonsai.core.drawing as core import bonsai.tool as tool -import ifcopenshell.util.representation -from bonsai.bim.module.drawing.data import DecoratorData, AnnotationData from bonsai.bim.helper import prop_with_search -from bpy.types import WorkSpaceTool -from functools import partial +from bonsai.bim.module.drawing.data import AnnotationData, DecoratorData class LaunchAnnotationTypeManager(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/fm/__init__.py b/src/bonsai/bonsai/bim/module/fm/__init__.py index dc26a6379c..5b54adb71b 100644 --- a/src/bonsai/bonsai/bim/module/fm/__init__.py +++ b/src/bonsai/bonsai/bim/module/fm/__init__.py @@ -19,7 +19,8 @@ # pyright: reportAttributeAccessIssue=false import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcFM, diff --git a/src/bonsai/bonsai/bim/module/fm/data.py b/src/bonsai/bonsai/bim/module/fm/data.py index fa4a9c4c6a..80a686e364 100644 --- a/src/bonsai/bonsai/bim/module/fm/data.py +++ b/src/bonsai/bonsai/bim/module/fm/data.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import ifcfm import importlib +import os + +import ifcfm def refresh(): diff --git a/src/bonsai/bonsai/bim/module/fm/operator.py b/src/bonsai/bonsai/bim/module/fm/operator.py index cda36598db..629251282a 100644 --- a/src/bonsai/bonsai/bim/module/fm/operator.py +++ b/src/bonsai/bonsai/bim/module/fm/operator.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json -import ifcfm import logging +import os import tempfile + +import bpy +import ifcfm import ifcopenshell -import bonsai.tool as tool from bpy_extras.io_utils import ExportHelper, ImportHelper +import bonsai.tool as tool + class ExecuteIfcFM(bpy.types.Operator, ExportHelper): bl_idname = "bim.execute_ifcfm" diff --git a/src/bonsai/bonsai/bim/module/fm/prop.py b/src/bonsai/bonsai/bim/module/fm/prop.py index 25db89224f..2eb1ae4739 100644 --- a/src/bonsai/bonsai/bim/module/fm/prop.py +++ b/src/bonsai/bonsai/bim/module/fm/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + import bonsai.tool as tool from bonsai.bim.module.fm.data import FMData from bonsai.bim.prop import MultipleFileSelect, StrProperty -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import TYPE_CHECKING, Literal def get_engine(self: "BIMFMProperties", context: object) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/fm/ui.py b/src/bonsai/bonsai/bim/module/fm/ui.py index fa889c61fd..69e51ea6dc 100644 --- a/src/bonsai/bonsai/bim/module/fm/ui.py +++ b/src/bonsai/bonsai/bim/module/fm/ui.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel + +import bonsai.tool as tool from bonsai.bim.module.fm.data import FMData diff --git a/src/bonsai/bonsai/bim/module/geometry/__init__.py b/src/bonsai/bonsai/bim/module/geometry/__init__.py index de9a75fbc7..bc64947436 100644 --- a/src/bonsai/bonsai/bim/module/geometry/__init__.py +++ b/src/bonsai/bonsai/bim/module/geometry/__init__.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -from . import ui, prop, operator -from bpy.app.handlers import persistent -import ifcopenshell.util.element import math +import bpy +import ifcopenshell.util.element +from bpy.app.handlers import persistent + +from . import operator, prop, ui + classes = ( operator.AddCurvelikeItem, operator.AddHalfSpaceSolidItem, diff --git a/src/bonsai/bonsai/bim/module/geometry/data.py b/src/bonsai/bonsai/bim/module/geometry/data.py index 2e7d6c4205..05344ab87e 100644 --- a/src/bonsai/bonsai/bim/module/geometry/data.py +++ b/src/bonsai/bonsai/bim/module/geometry/data.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.unit -import bonsai.tool as tool -from typing import Any, Union from mathutils import Vector +import bonsai.tool as tool + def refresh(): ViewportData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/geometry/decorator.py b/src/bonsai/bonsai/bim/module/geometry/decorator.py index 02cb4bd255..c5a82c1d59 100644 --- a/src/bonsai/bonsai/bim/module/geometry/decorator.py +++ b/src/bonsai/bonsai/bim/module/geometry/decorator.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from collections.abc import Sequence + import blf -import gpu import bmesh +import bpy +import gpu import ifcopenshell -import bonsai.tool as tool import numpy as np from bpy.types import SpaceView3D -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d -from collections.abc import Sequence +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.tool as tool class ItemDecorator: diff --git a/src/bonsai/bonsai/bim/module/geometry/helper.py b/src/bonsai/bonsai/bim/module/geometry/helper.py index 7f70df4b96..511669d60d 100644 --- a/src/bonsai/bonsai/bim/module/geometry/helper.py +++ b/src/bonsai/bonsai/bim/module/geometry/helper.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from math import pi, pow +from typing import Any, Optional, TypeVar, Union + import bmesh -import shapely +import bpy +import ifcopenshell +import ifcopenshell.util.shape +import ifcopenshell.util.unit import mathutils import numpy as np -import ifcopenshell -import ifcopenshell.util.unit -import ifcopenshell.util.shape -import bonsai.tool as tool -from math import pi, pow -from mathutils import Vector, Matrix, geometry -from typing import Union, Any, TypeVar, Optional +import shapely from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Vector, geometry + +import bonsai.tool as tool T = TypeVar("T") diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index a35a4de7bc..a03c6ae19c 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -17,17 +17,30 @@ # along with Bonsai. If not, see . import re -import bpy +from collections.abc import Sequence +from time import time +from typing import ( + TYPE_CHECKING, + Any, + Literal, + NamedTuple, + Union, + assert_never, + get_args, +) + import bmesh -import numpy as np -import numpy.typing as npt +import bpy import ifcopenshell +import ifcopenshell.api +import ifcopenshell.api.boundary import ifcopenshell.api.drawing -import ifcopenshell.api.group -import ifcopenshell.api.pset import ifcopenshell.api.geometry +import ifcopenshell.api.grid +import ifcopenshell.api.group import ifcopenshell.api.layer import ifcopenshell.api.material +import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.util.element @@ -35,26 +48,23 @@ import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder import ifcopenshell.util.unit -import ifcopenshell.api -import ifcopenshell.api.boundary -import ifcopenshell.api.grid +import numpy as np +import numpy.typing as npt +from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Quaternion, Vector + +import bonsai.bim.handler +import bonsai.core.aggregate +import bonsai.core.drawing import bonsai.core.geometry import bonsai.core.geometry as core -import bonsai.core.aggregate import bonsai.core.nest +import bonsai.core.root import bonsai.core.spatial import bonsai.core.style -import bonsai.core.root -import bonsai.core.drawing import bonsai.tool as tool -import bonsai.bim.handler -from bonsai.bim.module.model.data import AuthoringData -from mathutils import Vector, Matrix, Quaternion -from time import time from bonsai.bim.ifc import IfcStore -from ifcopenshell.util.shape_builder import ShapeBuilder -from collections.abc import Sequence -from typing import Any, Union, Literal, get_args, TYPE_CHECKING, assert_never, NamedTuple +from bonsai.bim.module.model.data import AuthoringData from bonsai.bim.module.model.decorator import ProfileDecorator if TYPE_CHECKING: diff --git a/src/bonsai/bonsai/bim/module/geometry/prop.py b/src/bonsai/bonsai/bim/module/geometry/prop.py index 1f8e00c11b..5336eef1c0 100644 --- a/src/bonsai/bonsai/bim/module/geometry/prop.py +++ b/src/bonsai/bonsai/bim/module/geometry/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import ifcopenshell +from typing import TYPE_CHECKING, Literal, Optional, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute, ObjProperty -from bonsai.bim.module.geometry.data import RepresentationsData, ViewportData -from bpy.types import PropertyGroup +import ifcopenshell from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import Optional, TYPE_CHECKING, Union, Literal +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.geometry.data import RepresentationsData, ViewportData +from bonsai.bim.prop import Attribute, ObjProperty, StrProperty def get_contexts(self: "BIMObjectGeometryProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/geometry/ui.py b/src/bonsai/bonsai/bim/module/geometry/ui.py index c4ae6e5491..2af216c7a1 100644 --- a/src/bonsai/bonsai/bim/module/geometry/ui.py +++ b/src/bonsai/bonsai/bim/module/geometry/ui.py @@ -17,16 +17,17 @@ # along with Bonsai. If not, see . import bpy +from bpy.types import Menu, Panel, UIList + import bonsai.bim import bonsai.tool as tool -from bpy.types import Panel, Menu, UIList from bonsai.bim.helper import prop_with_search from bonsai.bim.module.geometry.data import ( - RepresentationsData, - RepresentationItemsData, ConnectionsData, - PlacementData, DerivedCoordinatesData, + PlacementData, + RepresentationItemsData, + RepresentationsData, ) from bonsai.bim.module.layer.data import LayersData diff --git a/src/bonsai/bonsai/bim/module/georeference/__init__.py b/src/bonsai/bonsai/bim/module/georeference/__init__.py index 407cd8fead..39ee8f4143 100644 --- a/src/bonsai/bonsai/bim/module/georeference/__init__.py +++ b/src/bonsai/bonsai/bim/module/georeference/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddGeoreferencing, diff --git a/src/bonsai/bonsai/bim/module/georeference/data.py b/src/bonsai/bonsai/bim/module/georeference/data.py index 059368abc7..cf86314f9a 100644 --- a/src/bonsai/bonsai/bim/module/georeference/data.py +++ b/src/bonsai/bonsai/bim/module/georeference/data.py @@ -18,14 +18,15 @@ import bpy -import numpy as np -import bonsai.tool as tool import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.schema import ifcopenshell.util.unit -from mathutils import Matrix, Vector +import numpy as np from ifcopenshell.util.doc import get_entity_doc +from mathutils import Matrix, Vector + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/georeference/decorator.py b/src/bonsai/bonsai/bim/module/georeference/decorator.py index 01818e9805..6cece45cc8 100644 --- a/src/bonsai/bonsai/bim/module/georeference/decorator.py +++ b/src/bonsai/bonsai/bim/module/georeference/decorator.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from math import radians + import blf -import gpu import bmesh +import bpy +import gpu import ifcopenshell import ifcopenshell.util.geolocation -import bonsai.tool as tool -from math import radians from bpy.types import SpaceView3D -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.tool as tool from bonsai.bim.module.georeference.data import GeoreferenceData diff --git a/src/bonsai/bonsai/bim/module/georeference/operator.py b/src/bonsai/bonsai/bim/module/georeference/operator.py index 7d8f98dd6c..6c82e6684c 100644 --- a/src/bonsai/bonsai/bim/module/georeference/operator.py +++ b/src/bonsai/bonsai/bim/module/georeference/operator.py @@ -17,10 +17,10 @@ # along with Bonsai. If not, see . import bpy - -import bonsai.tool as tool -import bonsai.core.georeference as core from bpy_extras.io_utils import ImportHelper + +import bonsai.core.georeference as core +import bonsai.tool as tool from bonsai.bim.module.georeference.decorator import GeoreferenceDecorator diff --git a/src/bonsai/bonsai/bim/module/georeference/prop.py b/src/bonsai/bonsai/bim/module/georeference/prop.py index 1b6088556b..5a1a37f06f 100644 --- a/src/bonsai/bonsai/bim/module/georeference/prop.py +++ b/src/bonsai/bonsai/bim/module/georeference/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.util.geolocation -import bonsai.tool as tool -from bonsai.bim.prop import Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.georeference.data import GeoreferenceData from bonsai.bim.module.georeference.decorator import GeoreferenceDecorator -from typing import TYPE_CHECKING +from bonsai.bim.prop import Attribute def get_coordinate_operation_class( diff --git a/src/bonsai/bonsai/bim/module/georeference/ui.py b/src/bonsai/bonsai/bim/module/georeference/ui.py index 3dfec3a9f5..93e16b0fbe 100644 --- a/src/bonsai/bonsai/bim/module/georeference/ui.py +++ b/src/bonsai/bonsai/bim/module/georeference/ui.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel -from bonsai.bim.helper import draw_attributes, draw_attribute + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attribute, draw_attributes from bonsai.bim.module.georeference.data import GeoreferenceData diff --git a/src/bonsai/bonsai/bim/module/gis/__init__.py b/src/bonsai/bonsai/bim/module/gis/__init__.py index 4f0707c693..2e0eeecad3 100644 --- a/src/bonsai/bonsai/bim/module/gis/__init__.py +++ b/src/bonsai/bonsai/bim/module/gis/__init__.py @@ -17,9 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import prop -from . import operator -from . import ui + +from . import operator, prop, ui classes = ( prop.BIMCityJsonProperties, diff --git a/src/bonsai/bonsai/bim/module/gis/prop.py b/src/bonsai/bonsai/bim/module/gis/prop.py index bbf12aeb07..1e6ae61614 100644 --- a/src/bonsai/bonsai/bim/module/gis/prop.py +++ b/src/bonsai/bonsai/bim/module/gis/prop.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from bpy.props import BoolProperty, CollectionProperty, EnumProperty, StringProperty from bpy.types import PropertyGroup -from bpy.props import StringProperty, BoolProperty, EnumProperty, CollectionProperty + from bonsai.bim.prop import StrProperty diff --git a/src/bonsai/bonsai/bim/module/group/__init__.py b/src/bonsai/bonsai/bim/module/group/__init__.py index 86e8536672..6fd4ed5408 100644 --- a/src/bonsai/bonsai/bim/module/group/__init__.py +++ b/src/bonsai/bonsai/bim/module/group/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddGroup, diff --git a/src/bonsai/bonsai/bim/module/group/data.py b/src/bonsai/bonsai/bim/module/group/data.py index 60b97e77f0..c7be2ff393 100644 --- a/src/bonsai/bonsai/bim/module/group/data.py +++ b/src/bonsai/bonsai/bim/module/group/data.py @@ -20,6 +20,7 @@ import bpy import ifcopenshell import ifcopenshell.util.cost import ifcopenshell.util.element + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/group/operator.py b/src/bonsai/bonsai/bim/module/group/operator.py index 40c3e418a1..66872ed90a 100644 --- a/src/bonsai/bonsai/bim/module/group/operator.py +++ b/src/bonsai/bonsai/bim/module/group/operator.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy import ifcopenshell.api import ifcopenshell.api.group import ifcopenshell.util.element + import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING, Literal, get_args class LoadGroups(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/group/prop.py b/src/bonsai/bonsai/bim/module/group/prop.py index e96f6f8a2a..48bff62e35 100644 --- a/src/bonsai/bonsai/bim/module/group/prop.py +++ b/src/bonsai/bonsai/bim/module/group/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.pset.data import refresh as refresh_pset -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.pset.data import refresh as refresh_pset +from bonsai.bim.prop import Attribute, StrProperty def update_active_group_index(self, context): diff --git a/src/bonsai/bonsai/bim/module/group/ui.py b/src/bonsai/bonsai/bim/module/group/ui.py index ac437e9c42..a9620c8ffc 100644 --- a/src/bonsai/bonsai/bim/module/group/ui.py +++ b/src/bonsai/bonsai/bim/module/group/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy -import bonsai.tool as tool from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes from bonsai.bim.module.group.data import GroupsData, ObjectGroupsData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.group.prop import BIMGroupProperties, Group diff --git a/src/bonsai/bonsai/bim/module/ifcgit/__init__.py b/src/bonsai/bonsai/bim/module/ifcgit/__init__.py index ae946e4e9d..df47b7774c 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/__init__.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/__init__.py @@ -16,8 +16,8 @@ # Massimo Fabbro import bpy -from . import ui, prop, operator +from . import operator, prop, ui classes = ( operator.AddFileToRepo, diff --git a/src/bonsai/bonsai/bim/module/ifcgit/data.py b/src/bonsai/bonsai/bim/module/ifcgit/data.py index 18ffe0e55c..9cb9f2655d 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/data.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/data.py @@ -1,7 +1,8 @@ -import bpy import os import shutil +import bpy + # import tool import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/ifcgit/operator.py b/src/bonsai/bonsai/bim/module/ifcgit/operator.py index 8457c69fc7..829a0a62a2 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/operator.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/operator.py @@ -1,10 +1,12 @@ import os import re +from typing import TYPE_CHECKING + import bpy + import bonsai.core.ifcgit as core import bonsai.tool as tool from bonsai.bim.module.ifcgit.data import IfcGitData, refresh -from typing import TYPE_CHECKING class CreateRepo(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/ifcgit/prop.py b/src/bonsai/bonsai/bim/module/ifcgit/prop.py index 128cfcd44b..cba3ca632c 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/prop.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/prop.py @@ -1,15 +1,17 @@ +from typing import TYPE_CHECKING, Literal + import bpy -import bonsai.tool as tool -from bpy.types import PropertyGroup from bpy.props import ( - StringProperty, BoolProperty, CollectionProperty, - IntProperty, EnumProperty, + IntProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.ifcgit.data import IfcGitData -from typing import TYPE_CHECKING, Literal def git_branches(self: "IfcGitProperties", context: bpy.types.Context) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/ifcgit/ui.py b/src/bonsai/bonsai/bim/module/ifcgit/ui.py index 631f33c7e1..d8b7357e7b 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/ui.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/ui.py @@ -1,15 +1,17 @@ from __future__ import annotations -import bpy -import time + import os import platform -import bonsai.tool as tool +import time from typing import TYPE_CHECKING +import bpy + +import bonsai.tool as tool from bonsai.bim.module.ifcgit.data import IfcGitData if TYPE_CHECKING: - from bonsai.bim.module.ifcgit.prop import IfcGitProperties, IfcGitListItem + from bonsai.bim.module.ifcgit.prop import IfcGitListItem, IfcGitProperties class IFCGIT_PT_panel(bpy.types.Panel): diff --git a/src/bonsai/bonsai/bim/module/layer/__init__.py b/src/bonsai/bonsai/bim/module/layer/__init__.py index 9ee1c57fb4..06d5175833 100644 --- a/src/bonsai/bonsai/bim/module/layer/__init__.py +++ b/src/bonsai/bonsai/bim/module/layer/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddPresentationLayer, diff --git a/src/bonsai/bonsai/bim/module/layer/data.py b/src/bonsai/bonsai/bim/module/layer/data.py index f55b4c2900..4550d3257e 100644 --- a/src/bonsai/bonsai/bim/module/layer/data.py +++ b/src/bonsai/bonsai/bim/module/layer/data.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy import ifcopenshell + import bonsai.tool as tool -from typing import Any def refresh(): diff --git a/src/bonsai/bonsai/bim/module/layer/operator.py b/src/bonsai/bonsai/bim/module/layer/operator.py index d1b5a0580b..8475bebd54 100644 --- a/src/bonsai/bonsai/bim/module/layer/operator.py +++ b/src/bonsai/bonsai/bim/module/layer/operator.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.layer import ifcopenshell.util.element + import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING def get_active_mesh(context: bpy.types.Context, mesh_name: str) -> bpy.types.Mesh: diff --git a/src/bonsai/bonsai/bim/module/layer/prop.py b/src/bonsai/bonsai/bim/module/layer/prop.py index 079ba262de..26a6c3680d 100644 --- a/src/bonsai/bonsai/bim/module/layer/prop.py +++ b/src/bonsai/bonsai/bim/module/layer/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, StrProperty def update_layer_property(self: "Layer", context: bpy.types.Context, *, property: str) -> None: diff --git a/src/bonsai/bonsai/bim/module/layer/ui.py b/src/bonsai/bonsai/bim/module/layer/ui.py index d7fcdec215..b4de131ad6 100644 --- a/src/bonsai/bonsai/bim/module/layer/ui.py +++ b/src/bonsai/bonsai/bim/module/layer/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Mesh, Panel, UIList + import bonsai.tool as tool -from bpy.types import Panel, UIList, Mesh from bonsai.bim.helper import draw_attributes from bonsai.bim.module.layer.data import LayersData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.layer.prop import BIMLayerProperties, Layer diff --git a/src/bonsai/bonsai/bim/module/library/__init__.py b/src/bonsai/bonsai/bim/module/library/__init__.py index 5017772cfe..a3ef2c3060 100644 --- a/src/bonsai/bonsai/bim/module/library/__init__.py +++ b/src/bonsai/bonsai/bim/module/library/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddLibrary, diff --git a/src/bonsai/bonsai/bim/module/library/data.py b/src/bonsai/bonsai/bim/module/library/data.py index 87ad7c23ae..0d26369035 100644 --- a/src/bonsai/bonsai/bim/module/library/data.py +++ b/src/bonsai/bonsai/bim/module/library/data.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/library/operator.py b/src/bonsai/bonsai/bim/module/library/operator.py index 6f4e971465..6c7abe8be5 100644 --- a/src/bonsai/bonsai/bim/module/library/operator.py +++ b/src/bonsai/bonsai/bim/module/library/operator.py @@ -18,8 +18,9 @@ import bpy import ifcopenshell.api -import bonsai.tool as tool + import bonsai.core.library as core +import bonsai.tool as tool class AddLibrary(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/library/prop.py b/src/bonsai/bonsai/bim/module/library/prop.py index 24defdf9ea..69647c195f 100644 --- a/src/bonsai/bonsai/bim/module/library/prop.py +++ b/src/bonsai/bonsai/bim/module/library/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.library.data import LibrariesData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.library.data import LibrariesData +from bonsai.bim.prop import Attribute, StrProperty def update_active_reference_index(self, context): diff --git a/src/bonsai/bonsai/bim/module/library/ui.py b/src/bonsai/bonsai/bim/module/library/ui.py index bfc64e3020..f76e6a3251 100644 --- a/src/bonsai/bonsai/bim/module/library/ui.py +++ b/src/bonsai/bonsai/bim/module/library/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel, UIList from bonsai.bim.module.library.data import LibrariesData, LibraryReferencesData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.library.prop import BIMLibraryProperties, LibraryReference diff --git a/src/bonsai/bonsai/bim/module/light/__init__.py b/src/bonsai/bonsai/bim/module/light/__init__.py index 2785bba125..1bfe11be7a 100644 --- a/src/bonsai/bonsai/bim/module/light/__init__.py +++ b/src/bonsai/bonsai/bim/module/light/__init__.py @@ -16,17 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -from . import ui, prop, operator, list - -import stat -from pathlib import Path - import importlib import importlib.util +import stat import traceback +from pathlib import Path + +import bpy import pyradiance +from . import list, operator, prop, ui + def get_pyradiance_path(): return importlib.util.find_spec("pyradiance").submodule_search_locations[0] diff --git a/src/bonsai/bonsai/bim/module/light/data.py b/src/bonsai/bonsai/bim/module/light/data.py index abe9d9e87d..d708b6170f 100644 --- a/src/bonsai/bonsai/bim/module/light/data.py +++ b/src/bonsai/bonsai/bim/module/light/data.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifcopenshell.util.geolocation from mathutils import Vector +import bonsai.tool as tool + def refresh(): SolarData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/light/decorator.py b/src/bonsai/bonsai/bim/module/light/decorator.py index 77cd20ddbd..9cfb9ae186 100644 --- a/src/bonsai/bonsai/bim/module/light/decorator.py +++ b/src/bonsai/bonsai/bim/module/light/decorator.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from math import degrees, radians + import blf -import gpu import bmesh -import bonsai.tool as tool +import bpy +import gpu from bpy.types import SpaceView3D -from math import radians, degrees -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData diff --git a/src/bonsai/bonsai/bim/module/light/list.py b/src/bonsai/bonsai/bim/module/light/list.py index 6eaa1f4c79..ff6b7ae4bd 100644 --- a/src/bonsai/bonsai/bim/module/light/list.py +++ b/src/bonsai/bonsai/bim/module/light/list.py @@ -17,13 +17,18 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json import os from typing import TYPE_CHECKING +import bpy + if TYPE_CHECKING: - from bonsai.bim.module.light.prop import RadianceExporterProperties, RadianceMaterial + from bonsai.bim.module.light.prop import ( + RadianceExporterProperties, + RadianceMaterial, + ) with open(os.path.join(os.path.dirname(__file__), "spectraldb.json"), "r") as f: spectraldb = json.load(f) diff --git a/src/bonsai/bonsai/bim/module/light/operator.py b/src/bonsai/bonsai/bim/module/light/operator.py index 4a8d993e0e..41bae9179c 100644 --- a/src/bonsai/bonsai/bim/module/light/operator.py +++ b/src/bonsai/bonsai/bim/module/light/operator.py @@ -16,28 +16,28 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os - -import pyradiance as pr -from datetime import datetime -import bpy -import bonsai.tool as tool -from pathlib import Path -from typing import Union, TYPE_CHECKING import json import math -import time -import ifcopenshell -import ifcopenshell.util.geolocation -import webbrowser -import ifcopenshell.geom import multiprocessing -import requests +import os +import time +import webbrowser +from datetime import datetime from math import radians +from pathlib import Path +from typing import TYPE_CHECKING, Union + +import bpy +import ifcopenshell +import ifcopenshell.geom +import ifcopenshell.util.geolocation +import pyradiance as pr +import requests +from bpy_extras.io_utils import ExportHelper, ImportHelper from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData -from bpy_extras.io_utils import ExportHelper -from bpy_extras.io_utils import ImportHelper ifc_materials = [] diff --git a/src/bonsai/bonsai/bim/module/light/prop.py b/src/bonsai/bonsai/bim/module/light/prop.py index e538ca1bf2..d3498f18b8 100644 --- a/src/bonsai/bonsai/bim/module/light/prop.py +++ b/src/bonsai/bonsai/bim/module/light/prop.py @@ -16,27 +16,29 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import datetime +import json +import os +from math import pi, radians +from typing import TYPE_CHECKING, Literal, Union + import bpy import pytz import tzfpy -import json -import datetime -import bonsai.tool as tool -from typing import TYPE_CHECKING, Literal, Union -from math import radians, pi -from mathutils import Euler, Vector, Matrix, Quaternion from bpy.props import ( - IntProperty, - StringProperty, + BoolProperty, + CollectionProperty, EnumProperty, FloatProperty, FloatVectorProperty, - BoolProperty, - CollectionProperty, + IntProperty, PointerProperty, + StringProperty, ) -import os from bpy.types import PropertyGroup +from mathutils import Euler, Matrix, Quaternion, Vector + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData from bonsai.bim.module.light.decorator import SolarDecorator diff --git a/src/bonsai/bonsai/bim/module/light/ui.py b/src/bonsai/bonsai/bim/module/light/ui.py index 0f0ffc09cb..cd4bdbb362 100644 --- a/src/bonsai/bonsai/bim/module/light/ui.py +++ b/src/bonsai/bonsai/bim/module/light/ui.py @@ -17,9 +17,11 @@ # along with Bonsai. If not, see . import calendar -import bpy -import bonsai.tool as tool from typing import TYPE_CHECKING + +import bpy + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData diff --git a/src/bonsai/bonsai/bim/module/material/__init__.py b/src/bonsai/bonsai/bim/module/material/__init__.py index c7f7756bc9..5f14b170ee 100644 --- a/src/bonsai/bonsai/bim/module/material/__init__.py +++ b/src/bonsai/bonsai/bim/module/material/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddConstituent, diff --git a/src/bonsai/bonsai/bim/module/material/data.py b/src/bonsai/bonsai/bim/module/material/data.py index b56ff93e33..36c93add4f 100644 --- a/src/bonsai/bonsai/bim/module/material/data.py +++ b/src/bonsai/bonsai/bim/module/material/data.py @@ -17,15 +17,17 @@ # along with Bonsai. If not, see . import os +from typing import Any, Union + import bpy import ifcopenshell -import ifcopenshell.util.element import ifcopenshell.util.doc +import ifcopenshell.util.element import ifcopenshell.util.schema +from natsort import natsorted + import bonsai.tool as tool from bonsai.bim.module.drawing.helper import format_distance -from typing import Any, Union -from natsort import natsorted def refresh(): diff --git a/src/bonsai/bonsai/bim/module/material/operator.py b/src/bonsai/bonsai/bim/module/material/operator.py index f46f2c7b6a..81ef17e6e4 100644 --- a/src/bonsai/bonsai/bim/module/material/operator.py +++ b/src/bonsai/bonsai/bim/module/material/operator.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell.api import ifcopenshell.api.material import ifcopenshell.api.profile import ifcopenshell.api.style import ifcopenshell.util.element import ifcopenshell.util.representation + import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.core.material as core import bonsai.bim.module.model.profile as model_profile -from typing import Any, Union, TYPE_CHECKING, Literal -from bonsai.bim.module.model import wall, slab +import bonsai.core.material as core +import bonsai.tool as tool +from bonsai.bim.module.model import slab, wall if TYPE_CHECKING: from bonsai.bim.prop import Attribute diff --git a/src/bonsai/bonsai/bim/module/material/prop.py b/src/bonsai/bonsai/bim/module/material/prop.py index 2fbd8d2847..27567ab27e 100644 --- a/src/bonsai/bonsai/bim/module/material/prop.py +++ b/src/bonsai/bonsai/bim/module/material/prop.py @@ -16,26 +16,28 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import ifcopenshell +from typing import TYPE_CHECKING + import bpy +import ifcopenshell +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool from bonsai.bim.module.classification.data import MaterialClassificationsData from bonsai.bim.module.material.data import MaterialsData, ObjectMaterialData from bonsai.bim.module.profile.data import ProfileData -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import TYPE_CHECKING +from bonsai.bim.prop import Attribute, StrProperty def get_profile_classes(self, context): diff --git a/src/bonsai/bonsai/bim/module/material/ui.py b/src/bonsai/bonsai/bim/module/material/ui.py index db05276d9b..2ac1908327 100644 --- a/src/bonsai/bonsai/bim/module/material/ui.py +++ b/src/bonsai/bonsai/bim/module/material/ui.py @@ -17,19 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.bim.helper -import bonsai.tool as tool + +from typing import TYPE_CHECKING, Any + import bpy import ifcopenshell.util.element import ifcopenshell.util.unit from bpy.types import Panel, UIList -from bonsai.bim.helper import draw_attributes -from bonsai.bim.helper import prop_with_search + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search from bonsai.bim.module.material.data import MaterialsData, ObjectMaterialData -from typing import TYPE_CHECKING, Any if TYPE_CHECKING: - from bonsai.bim.module.material.prop import Material, BIMMaterialProperties + from bonsai.bim.module.material.prop import BIMMaterialProperties, Material class BIM_PT_materials(Panel): diff --git a/src/bonsai/bonsai/bim/module/misc/__init__.py b/src/bonsai/bonsai/bim/module/misc/__init__.py index 31926217fc..a71e467b7f 100644 --- a/src/bonsai/bonsai/bim/module/misc/__init__.py +++ b/src/bonsai/bonsai/bim/module/misc/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.DrawSystemArrows, diff --git a/src/bonsai/bonsai/bim/module/misc/operator.py b/src/bonsai/bonsai/bim/module/misc/operator.py index ee3c592f3e..33703331f8 100644 --- a/src/bonsai/bonsai/bim/module/misc/operator.py +++ b/src/bonsai/bonsai/bim/module/misc/operator.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, assert_never, get_args + import bpy -import numpy as np import ifcopenshell import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.core.misc as core +import numpy as np +from mathutils import Euler, Matrix, Vector + import bonsai.core.geometry as core_geometry +import bonsai.core.misc as core import bonsai.core.root -from mathutils import Vector, Matrix, Euler -from typing import TYPE_CHECKING, Literal, get_args, assert_never +import bonsai.tool as tool class SetOverrideColour(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/misc/prop.py b/src/bonsai/bonsai/bim/module/misc/prop.py index 3201cbd94d..889e1f5099 100644 --- a/src/bonsai/bonsai/bim/module/misc/prop.py +++ b/src/bonsai/bonsai/bim/module/misc/prop.py @@ -17,18 +17,19 @@ # along with Bonsai. If not, see . import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +from bonsai.bim.prop import Attribute, StrProperty class BIMMiscProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/model/__init__.py b/src/bonsai/bonsai/bim/module/model/__init__.py index c758aa7f54..57b4b561d0 100644 --- a/src/bonsai/bonsai/bim/module/model/__init__.py +++ b/src/bonsai/bonsai/bim/module/model/__init__.py @@ -16,33 +16,33 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import NamedTuple + import bpy + from . import ( - handler, - prop, - ui, - grid, array, + covering, + door, + external, + grid, + handler, + mep, + opening, product, - wall, + profile, + prop, + railing, roof, slab, space, - covering, stair, - window, - opening, - mep, - workspace, - profile, sverchok_modifier, - door, - railing, - roof, - mep, - external, + ui, + wall, + window, + workspace, ) -from typing import NamedTuple classes = ( array.AddArray, diff --git a/src/bonsai/bonsai/bim/module/model/array.py b/src/bonsai/bonsai/bim/module/model/array.py index ec1bce2096..3fb9360256 100644 --- a/src/bonsai/bonsai/bim/module/model/array.py +++ b/src/bonsai/bonsai/bim/module/model/array.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.element import ifcopenshell.util.unit +from mathutils import Matrix, Vector + import bonsai.tool as tool -from mathutils import Vector, Matrix class AddArray(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/model/covering.py b/src/bonsai/bonsai/bim/module/model/covering.py index 72eba944d1..468554b9be 100644 --- a/src/bonsai/bonsai/bim/module/model/covering.py +++ b/src/bonsai/bonsai/bim/module/model/covering.py @@ -20,8 +20,9 @@ import bpy import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool + import bonsai.core.covering as core +import bonsai.tool as tool class AddInstanceFlooringCoveringFromCursor(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/model/data.py b/src/bonsai/bonsai/bim/module/model/data.py index 649b92b325..0b97e05e77 100644 --- a/src/bonsai/bonsai/bim/module/model/data.py +++ b/src/bonsai/bonsai/bim/module/model/data.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import math import json +import math +from math import degrees +from typing import Any, Optional, Union + +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.schema from ifcopenshell.util.doc import get_entity_doc, get_predefined_type_doc -import bonsai.tool as tool -from math import degrees from natsort import natsorted -from typing import Union, Optional, Any + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index 00e733b397..328804d4c6 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -17,26 +17,27 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + +import math +from itertools import chain +from math import cos, radians, sin, tan +from typing import Any, Literal, Union + import blf +import bmesh import bpy import gpu -import bmesh import ifcopenshell -import bonsai.tool as tool -import math import mathutils -from math import sin, cos, tan, radians from bpy.types import SpaceView3D from bpy_extras import view3d_utils -from mathutils import Vector, Matrix, Quaternion +from bpy_extras.view3d_utils import location_3d_to_region_2d from gpu_extras.batch import batch_for_shader from gpu_extras.presets import draw_circle_2d -from typing import Union +from mathutils import Matrix, Quaternion, Vector + +import bonsai.tool as tool from bonsai.bim.module.drawing.helper import format_distance -from itertools import chain -from typing import Union, Any, Literal -from bpy_extras.view3d_utils import location_3d_to_region_2d def transparent_color(color, alpha=0.1): diff --git a/src/bonsai/bonsai/bim/module/model/door.py b/src/bonsai/bonsai/bim/module/model/door.py index 26d1a1a7fb..dbdf5e8dcf 100644 --- a/src/bonsai/bonsai/bim/module/model/door.py +++ b/src/bonsai/bonsai/bim/module/model/door.py @@ -17,8 +17,13 @@ # along with Bonsai. If not, see . -import bpy +import collections +import collections.abc +import json +from typing import TYPE_CHECKING, get_args + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -28,19 +33,14 @@ import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.schema import ifcopenshell.util.unit -import bonsai.tool as tool +from mathutils import Matrix, Vector + import bonsai.core.geometry as core import bonsai.core.root -from bonsai.bim.module.model.window import create_bm_window, create_bm_box +import bonsai.tool as tool from bonsai.bim.module.drawing import gizmos as gizmo from bonsai.bim.module.drawing.gizmos import DimensionGizmoConfig - -from mathutils import Vector, Matrix - -import json -import collections -import collections.abc -from typing import get_args, TYPE_CHECKING +from bonsai.bim.module.model.window import create_bm_box, create_bm_window if TYPE_CHECKING: from bonsai.bim.module.model.prop import BIMDoorProperties diff --git a/src/bonsai/bonsai/bim/module/model/grid.py b/src/bonsai/bonsai/bim/module/model/grid.py index 4bac1b3f94..df4f140ebc 100644 --- a/src/bonsai/bonsai/bim/module/model/grid.py +++ b/src/bonsai/bonsai/bim/module/model/grid.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.grid -import bonsai.tool as tool +from bpy.props import FloatProperty, IntProperty +from bpy.types import Operator +from mathutils import Vector + import bonsai.core.geometry import bonsai.core.root -from bpy.types import Operator -from bpy.props import FloatProperty, IntProperty -from mathutils import Vector -from typing import TYPE_CHECKING +import bonsai.tool as tool def add_object(self: "BIM_OT_add_object", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/model/handler.py b/src/bonsai/bonsai/bim/module/model/handler.py index 76ebbf57ee..26a4863837 100644 --- a/src/bonsai/bonsai/bim/module/model/handler.py +++ b/src/bonsai/bonsai/bim/module/model/handler.py @@ -19,9 +19,10 @@ import bpy import ifcopenshell import ifcopenshell.api -from bonsai.bim.module.model import product, wall, slab, profile, opening, task from bpy.app.handlers import persistent +from bonsai.bim.module.model import opening, product, profile, slab, task, wall + @persistent def load_post(*args): diff --git a/src/bonsai/bonsai/bim/module/model/mep.py b/src/bonsai/bonsai/bim/module/model/mep.py index ab96e60b0d..cdb2538d28 100644 --- a/src/bonsai/bonsai/bim/module/model/mep.py +++ b/src/bonsai/bonsai/bim/module/model/mep.py @@ -16,13 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import math import collections import collections.abc -import bmesh -import re import json +import math +import re +from copy import copy +from math import asin, cos, degrees, pi, radians, sin, tan + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -35,14 +38,13 @@ import ifcopenshell.util.representation import ifcopenshell.util.system import ifcopenshell.util.unit import numpy as np -import bonsai.core.type -import bonsai.core.root -import bonsai.core.geometry -import bonsai.tool as tool -from math import pi, degrees, radians, sin, cos, asin, tan -from copy import copy -from mathutils import Vector, Matrix from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Vector + +import bonsai.core.geometry +import bonsai.core.root +import bonsai.core.type +import bonsai.tool as tool from bonsai.bim.module.model.profile import DumbProfileJoiner from bonsai.tool.cad import VTX_PRECISION diff --git a/src/bonsai/bonsai/bim/module/model/opening.py b/src/bonsai/bonsai/bim/module/model/opening.py index 256251b06c..b0806ec33d 100644 --- a/src/bonsai/bonsai/bim/module/model/opening.py +++ b/src/bonsai/bonsai/bim/module/model/opening.py @@ -16,38 +16,39 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json +import logging +from collections import defaultdict +from collections.abc import Sequence +from math import pi, radians +from typing import Any, Optional, Union, cast + +import bmesh import bpy import gpu -import json -import bmesh -import shapely -import logging -import numpy as np import ifcopenshell import ifcopenshell.api -import ifcopenshell.api.geometry import ifcopenshell.api.feature +import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.geom -import ifcopenshell.util.shape import ifcopenshell.util.element -import ifcopenshell.util.shape_builder import ifcopenshell.util.placement import ifcopenshell.util.representation +import ifcopenshell.util.shape +import ifcopenshell.util.shape_builder import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.core.geometry -import bonsai.bim.import_ifc as import_ifc -from collections import defaultdict -from math import pi, radians -from mathutils import Vector, Matrix, Euler -from bpy.types import Operator -from bpy.types import SpaceView3D +import numpy as np +import shapely from bpy.props import FloatProperty +from bpy.types import Operator, SpaceView3D from bpy_extras.object_utils import AddObjectHelper, object_data_add from gpu_extras.batch import batch_for_shader -from typing import Union, Optional, Any, cast -from collections.abc import Sequence +from mathutils import Euler, Matrix, Vector + +import bonsai.bim.import_ifc as import_ifc +import bonsai.core.geometry +import bonsai.tool as tool from bonsai.bim.module.drawing.decoration import DecoratorData diff --git a/src/bonsai/bonsai/bim/module/model/polyline.py b/src/bonsai/bonsai/bim/module/model/polyline.py index d2514321f3..de169796f6 100644 --- a/src/bonsai/bonsai/bim/module/model/polyline.py +++ b/src/bonsai/bonsai/bim/module/model/polyline.py @@ -17,28 +17,31 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import copy import math +from typing import Any, Literal, Optional, Union + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.geom -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.type +import ifcopenshell.util.unit import mathutils.geometry -import bonsai.core.type -import bonsai.core.root +from lark import Lark, Transformer +from mathutils import Vector + import bonsai.core.geometry import bonsai.core.model as core +import bonsai.core.root +import bonsai.core.type import bonsai.tool as tool -from mathutils import Vector from bonsai.bim.module.model.decorator import PolylineDecorator -from typing import Optional, Union, Literal, Any -from lark import Lark, Transformer class PolylineOperator: diff --git a/src/bonsai/bonsai/bim/module/model/product.py b/src/bonsai/bonsai/bim/module/model/product.py index 191a9406fe..822342ab75 100644 --- a/src/bonsai/bonsai/bim/module/model/product.py +++ b/src/bonsai/bonsai/bim/module/model/product.py @@ -18,38 +18,41 @@ # # pyright: reportUnnecessaryTypeIgnoreComment=error -import bpy +import json +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, assert_never, get_args + import bmesh -import mathutils -import numpy as np +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.system -import ifcopenshell.util.system import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder +import ifcopenshell.util.system import ifcopenshell.util.type import ifcopenshell.util.unit -import bonsai.tool as tool +import mathutils +import numpy as np +from bpy_extras.object_utils import AddObjectHelper +from mathutils import Matrix, Vector + import bonsai.core.aggregate -import bonsai.core.type -import bonsai.core.root import bonsai.core.geometry import bonsai.core.model as core +import bonsai.core.root import bonsai.core.spatial -from . import wall, slab, profile, mep -from bonsai.bim.ifc import IfcStore +import bonsai.core.type +import bonsai.tool as tool from bonsai.bim.helper import get_enum_items +from bonsai.bim.ifc import IfcStore from bonsai.bim.module.model.data import AuthoringData -from bonsai.bim.module.model.polyline import PolylineOperator from bonsai.bim.module.model.decorator import PolylineDecorator, ProductDecorator -from mathutils import Vector, Matrix -from bpy_extras.object_utils import AddObjectHelper -import json -from typing import Any, Union, Optional, Literal, get_args, assert_never, TYPE_CHECKING +from bonsai.bim.module.model.polyline import PolylineOperator + +from . import mep, profile, slab, wall class AddEmptyType(bpy.types.Operator, AddObjectHelper): diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index 80c7ccc20e..124a70707f 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -16,32 +16,37 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import copy +from math import atan2, degrees, pi +from typing import Any, Literal, Optional, Union + import bmesh -import mathutils.geometry +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.pset import ifcopenshell.api.type -import ifcopenshell.util.type -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import bonsai.tool as tool -import bonsai.core.type +import ifcopenshell.util.type +import ifcopenshell.util.unit +import mathutils.geometry +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.material import bonsai.core.root +import bonsai.core.type +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import pi, degrees, atan2 -from mathutils import Vector, Matrix -from bonsai.bim.module.model.decorator import ProfileDecorator, PolylineDecorator, ProductDecorator +from bonsai.bim.module.model.decorator import ( + PolylineDecorator, + ProductDecorator, + ProfileDecorator, +) from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Union, Any, Optional, Literal - ProfileFrom2PointsReturn = Union[dict[str, Any], None] diff --git a/src/bonsai/bonsai/bim/module/model/prop.py b/src/bonsai/bonsai/bim/module/model/prop.py index 4c3466d325..9f2664190d 100644 --- a/src/bonsai/bonsai/bim/module/model/prop.py +++ b/src/bonsai/bonsai/bim/module/model/prop.py @@ -16,22 +16,28 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import math +from collections.abc import Callable +from math import pi, radians +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, get_args + import bpy import ifcopenshell import ifcopenshell.util.element +from bpy.types import NodeTree, PropertyGroup +from mathutils import Vector + import bonsai.tool as tool -import math -from bonsai.bim.prop import ObjProperty +from bonsai.bim.module.drawing.decoration import CutDecorator from bonsai.bim.module.model.data import AuthoringData -from bpy.types import PropertyGroup, NodeTree -from math import pi, radians -from bonsai.bim.module.model.decorator import WallAxisDecorator, SlabDirectionDecorator, BoundingBoxDecorator +from bonsai.bim.module.model.decorator import ( + BoundingBoxDecorator, + SlabDirectionDecorator, + WallAxisDecorator, +) from bonsai.bim.module.model.door import update_door_modifier_bmesh from bonsai.bim.module.model.window import update_window_modifier_bmesh -from bonsai.bim.module.drawing.decoration import CutDecorator -from typing import TYPE_CHECKING, Literal, get_args, Union, Any, Optional -from collections.abc import Callable -from mathutils import Vector +from bonsai.bim.prop import ObjProperty if TYPE_CHECKING: import sverchok.node_tree diff --git a/src/bonsai/bonsai/bim/module/model/railing.py b/src/bonsai/bonsai/bim/module/model/railing.py index 4f6fc348f0..624b1b64a7 100644 --- a/src/bonsai/bonsai/bim/module/model/railing.py +++ b/src/bonsai/bonsai/bim/module/model/railing.py @@ -17,24 +17,25 @@ # along with Bonsai. If not, see . -import bpy +import json +from typing import Any + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.pset import ifcopenshell.util.representation import ifcopenshell.util.unit -import bonsai.core.root +from mathutils import Vector + import bonsai.core.geometry +import bonsai.core.root import bonsai.tool as tool from bonsai.bim.module.model.data import RailingData, refresh from bonsai.bim.module.model.decorator import ProfileDecorator -from mathutils import Vector -import json -from typing import Any - # reference: # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRailing.htm # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRailingType.htm diff --git a/src/bonsai/bonsai/bim/module/model/roof.py b/src/bonsai/bonsai/bim/module/model/roof.py index daf41b86dd..4038faa993 100644 --- a/src/bonsai/bonsai/bim/module/model/roof.py +++ b/src/bonsai/bonsai/bim/module/model/roof.py @@ -16,27 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh +import json +from math import cos, pi, radians, tan +from typing import Any, Literal, Union +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.representation import ifcopenshell.util.unit +import mathutils.geometry +import shapely +from bpypolyskel import bpypolyskel +from mathutils import Matrix, Quaternion, Vector + import bonsai.core.root import bonsai.tool as tool from bonsai.bim.module.model.data import RoofData, refresh from bonsai.bim.module.model.decorator import ProfileDecorator -import json -from math import cos, tan, pi, radians -from mathutils import Vector, Matrix, Quaternion -import mathutils.geometry -from bpypolyskel import bpypolyskel -import shapely -from typing import Literal, Union, Any - # reference: # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRoof.htm # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRoofType.htm diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index 46ea91dc08..1d673aca8e 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -16,9 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from math import acos, cos, degrees, pi, sin +from typing import Optional + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -28,18 +31,21 @@ import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import ifcopenshell.util.unit import ifcopenshell.util.type -import bonsai.core.type +import ifcopenshell.util.unit +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.root +import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import cos, sin, pi, acos, degrees -from mathutils import Vector, Matrix -from bonsai.bim.module.model.decorator import ProfileDecorator, PolylineDecorator, ProductDecorator +from bonsai.bim.module.model.decorator import ( + PolylineDecorator, + ProductDecorator, + ProfileDecorator, +) from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Optional class DumbSlabGenerator: diff --git a/src/bonsai/bonsai/bim/module/model/space.py b/src/bonsai/bonsai/bim/module/model/space.py index aeebea071b..baa7401358 100644 --- a/src/bonsai/bonsai/bim/module/model/space.py +++ b/src/bonsai/bonsai/bim/module/model/space.py @@ -18,8 +18,9 @@ import bpy -import bonsai.tool as tool + import bonsai.core.spatial as core +import bonsai.tool as tool class GenerateSpace(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/model/stair.py b/src/bonsai/bonsai/bim/module/model/stair.py index 91ddeccbc3..5b52308542 100644 --- a/src/bonsai/bonsai/bim/module/model/stair.py +++ b/src/bonsai/bonsai/bim/module/model/stair.py @@ -16,25 +16,32 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + import bmesh +import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit +from mathutils import Matrix, Vector + import bonsai.core.root import bonsai.tool as tool from bonsai.bim.module.drawing import gizmos as gizmo from bonsai.bim.module.drawing.gizmos import DimensionGizmoConfig -from bonsai.tool.numeric_input import IntegerInputState, run_integer_input_modal, update_header -from mathutils import Vector, Matrix +from bonsai.tool.numeric_input import ( + IntegerInputState, + run_integer_input_modal, + update_header, +) V_ = tool.Blender.V_ +from typing import TYPE_CHECKING, get_args + from bmesh.types import BMVert from bpy.props import IntProperty -from typing import get_args, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.model.prop import BIMStairProperties diff --git a/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py b/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py index d30852f1eb..0a318b1fb1 100644 --- a/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py +++ b/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py @@ -16,18 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh +import json +import os.path +import zipfile +import bmesh +import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element -import bonsai.tool as tool +from bpy_extras.io_utils import ExportHelper, ImportHelper -import json -import zipfile -import os.path -from bpy_extras.io_utils import ImportHelper, ExportHelper +import bonsai.tool as tool def update_sverchok_modifier(context): diff --git a/src/bonsai/bonsai/bim/module/model/ui.py b/src/bonsai/bonsai/bim/module/model/ui.py index 0d9aea58cd..2c931f4f45 100644 --- a/src/bonsai/bonsai/bim/module/model/ui.py +++ b/src/bonsai/bonsai/bim/module/model/ui.py @@ -17,24 +17,27 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections.abc import Iterable +from typing import TYPE_CHECKING, Any + import bpy +from bpy.types import Menu, Panel + import bonsai.bim -from bonsai.bim import module import bonsai.tool as tool -from bpy.types import Panel, Menu +from bonsai.bim import module from bonsai.bim.helper import prop_with_search from bonsai.bim.module.model.data import ( - AuthoringData, ArrayData, - StairData, - SverchokData, - WindowData, + AuthoringData, DoorData, RailingData, RoofData, + StairData, + SverchokData, + WindowData, ) -from collections.abc import Iterable -from typing import Any, TYPE_CHECKING if TYPE_CHECKING or bpy.app.version >= (5, 0, 0): import _bl_ui_utils.layout as bl_ui_utils_layout diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index d343bc75ae..9c94a27af0 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -18,37 +18,39 @@ # # pyright: reportUnnecessaryTypeIgnoreComment=error -import bpy import copy import math -import numpy as np +from math import acos, atan2, cos, degrees, pi, sin +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.feature +import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.type -import ifcopenshell.api.geometry -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder import ifcopenshell.util.type +import ifcopenshell.util.unit import mathutils.geometry -import bonsai.core.type -import bonsai.core.root +import numpy as np +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.model as core +import bonsai.core.root +import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import pi, sin, cos, degrees, atan2, acos -from mathutils import Vector, Matrix -from bonsai.bim.module.model.opening import FilledOpeningGenerator from bonsai.bim.module.model.decorator import PolylineDecorator, ProductDecorator +from bonsai.bim.module.model.opening import FilledOpeningGenerator from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Optional, assert_never, TYPE_CHECKING, get_args, Literal, Union, Any class UnjoinWalls(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/model/window.py b/src/bonsai/bonsai/bim/module/model/window.py index 206f65de08..ad473a110e 100644 --- a/src/bonsai/bonsai/bim/module/model/window.py +++ b/src/bonsai/bonsai/bim/module/model/window.py @@ -17,29 +17,31 @@ # along with Bonsai. If not, see . -import bpy -import json -import bmesh import collections import collections.abc +import json +from typing import TYPE_CHECKING, get_args + +import bmesh +import bpy import ifcopenshell -import ifcopenshell.api.geometry -import ifcopenshell.api.pset -import bonsai.tool as tool -import bonsai.core.root -import bonsai.core.geometry -from bonsai.bim.module.drawing import gizmos as gizmo -from bonsai.bim.module.drawing.gizmos import DimensionGizmoConfig -from ifcopenshell.api.geometry.add_window_representation import DEFAULT_PANEL_SCHEMAS import ifcopenshell.api +import ifcopenshell.api.geometry import ifcopenshell.api.material +import ifcopenshell.api.pset import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.shape_builder import ifcopenshell.util.unit from bmesh.types import BMVert -from mathutils import Vector, Matrix -from typing import get_args, TYPE_CHECKING +from ifcopenshell.api.geometry.add_window_representation import DEFAULT_PANEL_SCHEMAS +from mathutils import Matrix, Vector + +import bonsai.core.geometry +import bonsai.core.root +import bonsai.tool as tool +from bonsai.bim.module.drawing import gizmos as gizmo +from bonsai.bim.module.drawing.gizmos import DimensionGizmoConfig if TYPE_CHECKING: from bonsai.bim.module.model.prop import BIMWindowProperties diff --git a/src/bonsai/bonsai/bim/module/model/workspace.py b/src/bonsai/bonsai/bim/module/model/workspace.py index 30acee46e3..7b7a91906d 100644 --- a/src/bonsai/bonsai/bim/module/model/workspace.py +++ b/src/bonsai/bonsai/bim/module/model/workspace.py @@ -18,19 +18,21 @@ import os import sys +from functools import partial +from typing import Any, Optional, Union + import bpy import bpy.utils.previews +from bpy.types import Menu, WorkSpaceTool + import bonsai.bim -import bonsai.tool as tool import bonsai.core.model as core -from bonsai.bim.module.model.wall import DumbWallJoiner, DumbWallAligner -from bonsai.bim.helper import prop_with_search, draw_attribute -from bpy.types import WorkSpaceTool, Menu +import bonsai.tool as tool +from bonsai.bim.helper import draw_attribute, prop_with_search from bonsai.bim.module.model.data import AuthoringData, ItemData -from bonsai.bim.module.system.data import PortData from bonsai.bim.module.model.prop import get_ifc_class -from typing import Optional, Union, Any -from functools import partial +from bonsai.bim.module.model.wall import DumbWallAligner, DumbWallJoiner +from bonsai.bim.module.system.data import PortData def load_custom_icons(): diff --git a/src/bonsai/bonsai/bim/module/nest/__init__.py b/src/bonsai/bonsai/bim/module/nest/__init__.py index 883fd00186..a4bf3de181 100644 --- a/src/bonsai/bonsai/bim/module/nest/__init__.py +++ b/src/bonsai/bonsai/bim/module/nest/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.BIM_OT_nest_assign_object, diff --git a/src/bonsai/bonsai/bim/module/nest/data.py b/src/bonsai/bonsai/bim/module/nest/data.py index 77ec0d020f..abe94997fe 100644 --- a/src/bonsai/bonsai/bim/module/nest/data.py +++ b/src/bonsai/bonsai/bim/module/nest/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifcopenshell.util.element +import bonsai.tool as tool + def refresh(): NestData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/nest/decorator.py b/src/bonsai/bonsai/bim/module/nest/decorator.py index 5a16ef8e44..e9630ebc26 100644 --- a/src/bonsai/bonsai/bim/module/nest/decorator.py +++ b/src/bonsai/bonsai/bim/module/nest/decorator.py @@ -21,11 +21,12 @@ import bpy import gpu import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool from bpy.types import SpaceView3D from bpy_extras import view3d_utils from gpu_extras.batch import batch_for_shader from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.geometry.decorator import ItemDecorator diff --git a/src/bonsai/bonsai/bim/module/nest/operator.py b/src/bonsai/bonsai/bim/module/nest/operator.py index 68b6839e79..9d7eb2df67 100644 --- a/src/bonsai/bonsai/bim/module/nest/operator.py +++ b/src/bonsai/bonsai/bim/module/nest/operator.py @@ -19,8 +19,9 @@ import bpy import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool + import bonsai.core.nest as core +import bonsai.tool as tool class BIM_OT_nest_assign_object(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/nest/prop.py b/src/bonsai/bonsai/bim/module/nest/prop.py index 6cb787b3d4..c36388398c 100644 --- a/src/bonsai/bonsai/bim/module/nest/prop.py +++ b/src/bonsai/bonsai/bim/module/nest/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.spatial.data import SpatialData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.nest.decorator import NestDecorator, NestModeDecorator -from typing import TYPE_CHECKING, Union +from bonsai.bim.module.spatial.data import SpatialData +from bonsai.bim.prop import Attribute, StrProperty def update_relating_object(self: "BIMObjectNestProperties", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/nest/ui.py b/src/bonsai/bonsai/bim/module/nest/ui.py index 2ea33de49a..6d61c5d66b 100644 --- a/src/bonsai/bonsai/bim/module/nest/ui.py +++ b/src/bonsai/bonsai/bim/module/nest/ui.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel + +import bonsai.tool as tool from bonsai.bim.module.nest.data import NestData diff --git a/src/bonsai/bonsai/bim/module/owner/__init__.py b/src/bonsai/bonsai/bim/module/owner/__init__.py index 52c1c7cc19..6d24f2f5dc 100644 --- a/src/bonsai/bonsai/bim/module/owner/__init__.py +++ b/src/bonsai/bonsai/bim/module/owner/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddActor, diff --git a/src/bonsai/bonsai/bim/module/owner/data.py b/src/bonsai/bonsai/bim/module/owner/data.py index 9eb5b9e4c8..88a56d4b1f 100644 --- a/src/bonsai/bonsai/bim/module/owner/data.py +++ b/src/bonsai/bonsai/bim/module/owner/data.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell -import bonsai.tool as tool -from typing import Any, Union from ifcopenshell.util.doc import get_entity_doc from natsort import natsorted +import bonsai.tool as tool + def refresh(): PeopleData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/owner/operator.py b/src/bonsai/bonsai/bim/module/owner/operator.py index 4d3434f00a..2470fd8227 100644 --- a/src/bonsai/bonsai/bim/module/owner/operator.py +++ b/src/bonsai/bonsai/bim/module/owner/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, get_args + import bpy -import bonsai.tool as tool -import bonsai.core.owner as core import ifcopenshell.api.owner from ifcopenshell.api.owner.add_address import ADDRESS_TYPE -from typing import TYPE_CHECKING, get_args + +import bonsai.core.owner as core +import bonsai.tool as tool if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums diff --git a/src/bonsai/bonsai/bim/module/owner/prop.py b/src/bonsai/bonsai/bim/module/owner/prop.py index ecd8b8f723..dfe2b95ecd 100644 --- a/src/bonsai/bonsai/bim/module/owner/prop.py +++ b/src/bonsai/bonsai/bim/module/owner/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.owner.data import OwnerData, ActorData, ObjectActorData from typing import TYPE_CHECKING, Literal -from bpy.types import PropertyGroup + +import bpy from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.owner.data import ActorData, ObjectActorData, OwnerData +from bonsai.bim.prop import Attribute, StrProperty def get_user_person(self: "BIMOwnerProperties", context: bpy.types.Context) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/owner/ui.py b/src/bonsai/bonsai/bim/module/owner/ui.py index f348804d77..f1e7ae9ea3 100644 --- a/src/bonsai/bonsai/bim/module/owner/ui.py +++ b/src/bonsai/bonsai/bim/module/owner/ui.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy + import bonsai.bim.helper import bonsai.tool as tool -from typing import Any from bonsai.bim.module.owner.data import ( - PeopleData, + ActorData, + ApplicationsData, + ObjectActorData, OrganisationsData, OwnerData, - ActorData, - ObjectActorData, - ApplicationsData, + PeopleData, ) diff --git a/src/bonsai/bonsai/bim/module/patch/__init__.py b/src/bonsai/bonsai/bim/module/patch/__init__.py index 0a35e4b0d8..fd5de30d38 100644 --- a/src/bonsai/bonsai/bim/module/patch/__init__.py +++ b/src/bonsai/bonsai/bim/module/patch/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcPatch, diff --git a/src/bonsai/bonsai/bim/module/patch/operator.py b/src/bonsai/bonsai/bim/module/patch/operator.py index 5ff7e998ce..57413214d6 100644 --- a/src/bonsai/bonsai/bim/module/patch/operator.py +++ b/src/bonsai/bonsai/bim/module/patch/operator.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json +import os +from pathlib import Path +from typing import TYPE_CHECKING, cast + +import bpy import ifcopenshell import ifcpatch -import bonsai.tool as tool -import bonsai.core.patch as core +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.bim.handler -from bpy_extras.io_utils import ImportHelper, ExportHelper -from pathlib import Path -from typing import cast, TYPE_CHECKING +import bonsai.core.patch as core +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.prop import AttributeDataType diff --git a/src/bonsai/bonsai/bim/module/patch/prop.py b/src/bonsai/bonsai/bim/module/patch/prop.py index 3d372e5036..9382b4e786 100644 --- a/src/bonsai/bonsai/bim/module/patch/prop.py +++ b/src/bonsai/bonsai/bim/module/patch/prop.py @@ -16,25 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import importlib import importlib.util from pathlib import Path -import ifcpatch -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) from typing import TYPE_CHECKING, Literal, Union +import bpy +import ifcpatch +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +from bonsai.bim.prop import Attribute, StrProperty ifcpatchrecipes_enum: list[tuple[str, str, str]] = [] diff --git a/src/bonsai/bonsai/bim/module/patch/ui.py b/src/bonsai/bonsai/bim/module/patch/ui.py index 8c165d692f..c3101b4705 100644 --- a/src/bonsai/bonsai/bim/module/patch/ui.py +++ b/src/bonsai/bonsai/bim/module/patch/ui.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -from bonsai.bim.helper import prop_with_search -from bonsai.bim.helper import draw_attributes + from typing import TYPE_CHECKING +import bpy + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search + if TYPE_CHECKING: from bonsai.bim.prop import Attribute diff --git a/src/bonsai/bonsai/bim/module/profile/__init__.py b/src/bonsai/bonsai/bim/module/profile/__init__.py index 00a6728d32..d53deebb9c 100644 --- a/src/bonsai/bonsai/bim/module/profile/__init__.py +++ b/src/bonsai/bonsai/bim/module/profile/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, data + +from . import data, operator, prop, ui classes = ( operator.AddProfileDef, diff --git a/src/bonsai/bonsai/bim/module/profile/data.py b/src/bonsai/bonsai/bim/module/profile/data.py index eb21a72f25..34ea4d1b7b 100644 --- a/src/bonsai/bonsai/bim/module/profile/data.py +++ b/src/bonsai/bonsai/bim/module/profile/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy import bpy.utils import bpy.utils.previews import ifcopenshell.util.doc + import bonsai.tool as tool -from typing import Any def refresh(): diff --git a/src/bonsai/bonsai/bim/module/profile/operator.py b/src/bonsai/bonsai/bim/module/profile/operator.py index 99f47923e4..871d8f3b86 100644 --- a/src/bonsai/bonsai/bim/module/profile/operator.py +++ b/src/bonsai/bonsai/bim/module/profile/operator.py @@ -20,14 +20,15 @@ import bpy import ifcopenshell.api import ifcopenshell.api.profile import ifcopenshell.util.element + import bonsai.bim.helper -import bonsai.tool as tool import bonsai.bim.module.model.profile as model_profile import bonsai.core.profile as core -from bonsai.bim.module.model.decorator import ProfileDecorator -from bonsai.bim.module.profile.prop import generate_thumbnail_for_active_profile -from bonsai.bim.module.profile.data import refresh +import bonsai.tool as tool from bonsai.bim.module.geometry.helper import Helper +from bonsai.bim.module.model.decorator import ProfileDecorator +from bonsai.bim.module.profile.data import refresh +from bonsai.bim.module.profile.prop import generate_thumbnail_for_active_profile class LoadProfiles(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/profile/prop.py b/src/bonsai/bonsai/bim/module/profile/prop.py index f69f6a6cd9..61e2546193 100644 --- a/src/bonsai/bonsai/bim/module/profile/prop.py +++ b/src/bonsai/bonsai/bim/module/profile/prop.py @@ -16,25 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell -import ifcopenshell.util.schema import ifcopenshell.util.attribute -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.profile.data import ProfileData -from bpy.types import PropertyGroup +import ifcopenshell.util.schema from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.profile.data import ProfileData +from bonsai.bim.prop import Attribute, StrProperty def get_profile_classes(self: "BIMProfileProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/profile/ui.py b/src/bonsai/bonsai/bim/module/profile/ui.py index 33b8ca7d58..3128fe82ea 100644 --- a/src/bonsai/bonsai/bim/module/profile/ui.py +++ b/src/bonsai/bonsai/bim/module/profile/ui.py @@ -17,13 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel, UIList from bonsai.bim.module.profile.data import ProfileData from bonsai.bim.module.profile.prop import generate_thumbnail_for_active_profile -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.profile.prop import BIMProfileProperties, Profile diff --git a/src/bonsai/bonsai/bim/module/project/__init__.py b/src/bonsai/bonsai/bim/module/project/__init__.py index 26961b8c64..53ebaff14e 100644 --- a/src/bonsai/bonsai/bim/module/project/__init__.py +++ b/src/bonsai/bonsai/bim/module/project/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, workspace, gizmo, decorator + +from . import decorator, gizmo, operator, prop, ui, workspace classes = ( operator.AddProjectLibrary, diff --git a/src/bonsai/bonsai/bim/module/project/data.py b/src/bonsai/bonsai/bim/module/project/data.py index 1f51737205..e2e960b382 100644 --- a/src/bonsai/bonsai/bim/module/project/data.py +++ b/src/bonsai/bonsai/bim/module/project/data.py @@ -17,13 +17,15 @@ # along with Bonsai. If not, see . import os -import bpy -import bonsai.tool as tool -import ifcopenshell.util.file -from bonsai.bim.ifc import IfcStore -from pathlib import Path from collections import defaultdict -from typing import Union, Any +from pathlib import Path +from typing import Any, Union + +import bpy +import ifcopenshell.util.file + +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore def refresh(): diff --git a/src/bonsai/bonsai/bim/module/project/decorator.py b/src/bonsai/bonsai/bim/module/project/decorator.py index fbb3e9ae97..14035ca91c 100644 --- a/src/bonsai/bonsai/bim/module/project/decorator.py +++ b/src/bonsai/bonsai/bim/module/project/decorator.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu +from typing import Union + import blf -import bpy import bmesh -import bonsai.tool as tool +import bpy +import gpu +from bpy.app.handlers import persistent from bpy.types import SpaceView3D from bpy_extras import view3d_utils -from mathutils import Vector from gpu_extras.batch import batch_for_shader -from bpy.app.handlers import persistent -from typing import Union +from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.model.decorator import PolylineDecorator diff --git a/src/bonsai/bonsai/bim/module/project/gizmo.py b/src/bonsai/bonsai/bim/module/project/gizmo.py index bb372b9cb7..d91668eaa8 100644 --- a/src/bonsai/bonsai/bim/module/project/gizmo.py +++ b/src/bonsai/bonsai/bim/module/project/gizmo.py @@ -18,10 +18,11 @@ import bpy -import bonsai.tool as tool from bpy.types import GizmoGroup from mathutils import Matrix +import bonsai.tool as tool + class ClippingPlane(GizmoGroup): bl_idname = "OBJECT_GGT_bim_clipping_plane" diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index f8aebd2a34..8fad709de3 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -16,58 +16,63 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import time +import datetime import json import logging -import tempfile -import traceback +import os import subprocess -import datetime -import ifcopenshell.api.attribute -import numpy as np +import tempfile +import time +import traceback +from collections import defaultdict +from math import radians +from pathlib import Path +from typing import TYPE_CHECKING, Literal, Union, get_args + +import bpy import ifcopenshell import ifcopenshell.api +import ifcopenshell.api.attribute import ifcopenshell.api.nest import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W +import ifcopenshell.util.element import ifcopenshell.util.file -import ifcopenshell.util.selector import ifcopenshell.util.geolocation import ifcopenshell.util.representation -import ifcopenshell.util.element -import ifcopenshell.util.representation +import ifcopenshell.util.selector import ifcopenshell.util.shape import ifcopenshell.util.shape_builder import ifcopenshell.util.unit +import numpy as np +from bpy.app.handlers import persistent +from bpy_extras.io_utils import ExportHelper, ImportHelper +from ifcopenshell.geom import ShapeElementType +from mathutils import Matrix, Vector + import bonsai.bim.handler import bonsai.bim.helper import bonsai.bim.schema -import bonsai.tool as tool import bonsai.core.project as core -from bpy_extras.io_utils import ExportHelper, ImportHelper +import bonsai.tool as tool +from bonsai.bim import export_ifc, import_ifc from bonsai.bim.ifc import IfcStore -from bonsai.bim.ui import IFCFileSelector -from bonsai.bim import import_ifc -from bonsai.bim import export_ifc -from math import radians -from pathlib import Path -from collections import defaultdict -from mathutils import Vector, Matrix -from bpy.app.handlers import persistent -from ifcopenshell.geom import ShapeElementType -from bonsai.bim.module.project.data import LinksData, ProjectLibraryData -from bonsai.bim.module.project.decorator import ProjectDecorator, ClippingPlaneDecorator, MeasureDecorator -from bonsai.bim.module.project.prop import BreadcrumbType -from bonsai.bim.module.model.decorator import PolylineDecorator, FaceAreaDecorator +from bonsai.bim.module.model.decorator import FaceAreaDecorator, PolylineDecorator from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Union, TYPE_CHECKING, get_args, Literal +from bonsai.bim.module.project.data import LinksData, ProjectLibraryData +from bonsai.bim.module.project.decorator import ( + ClippingPlaneDecorator, + MeasureDecorator, + ProjectDecorator, +) +from bonsai.bim.module.project.prop import BreadcrumbType +from bonsai.bim.ui import IFCFileSelector if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums + from bonsai.bim.module.project.prop import Link @@ -1848,9 +1853,10 @@ class LoadLinkedProject(bpy.types.Operator, ImportHelper): return ImportHelper.invoke(self, context, event) def execute(self, context): - import ifcpatch import multiprocessing + import ifcpatch + start = time.time() pprops = tool.Project.get_project_props() @@ -2160,7 +2166,11 @@ class QueryLinkedElement(bpy.types.Operator): def execute(self, context): import sqlite3 - from bpy_extras.view3d_utils import region_2d_to_vector_3d, region_2d_to_origin_3d + + from bpy_extras.view3d_utils import ( + region_2d_to_origin_3d, + region_2d_to_vector_3d, + ) LinksData.linked_data = {} props = tool.Project.get_project_props() @@ -2505,9 +2515,10 @@ class RefreshClippingPlanes(bpy.types.Operator): break def refresh_clipping_planes(self, context): - import bmesh from itertools import cycle + import bmesh + area = next(a for a in bpy.context.screen.areas if a.type == "VIEW_3D") region = next(r for r in area.regions if r.type == "WINDOW") data = region.data @@ -2567,7 +2578,10 @@ class CreateClippingPlane(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - from bpy_extras.view3d_utils import region_2d_to_vector_3d, region_2d_to_origin_3d + from bpy_extras.view3d_utils import ( + region_2d_to_origin_3d, + region_2d_to_vector_3d, + ) # Clean up deleted planes props = tool.Project.get_project_props() diff --git a/src/bonsai/bonsai/bim/module/project/prop.py b/src/bonsai/bonsai/bim/module/project/prop.py index 6894392437..ea5c9c843a 100644 --- a/src/bonsai/bonsai/bim/module/project/prop.py +++ b/src/bonsai/bonsai/bim/module/project/prop.py @@ -17,26 +17,28 @@ # along with Bonsai. If not, see . import os +from collections.abc import Generator +from typing import TYPE_CHECKING, Literal, Union, assert_never, get_args + import bpy import ifcopenshell.util.element import ifcopenshell.util.placement -import bonsai.tool as tool -import bonsai.bim.helper -from bonsai.bim.module.project.data import ProjectData, ProjectLibraryData -from bonsai.bim.ifc import IfcStore -from bonsai.bim.prop import StrProperty, ObjProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, BoolProperty, CollectionProperty, EnumProperty, FloatProperty, IntProperty, + PointerProperty, StringProperty, ) -from typing import TYPE_CHECKING, Literal, Union, get_args, assert_never -from collections.abc import Generator +from bpy.types import PropertyGroup + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.project.data import ProjectData, ProjectLibraryData +from bonsai.bim.prop import Attribute, ObjProperty, StrProperty def get_export_schema(self: "BIMProjectProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/project/ui.py b/src/bonsai/bonsai/bim/module/project/ui.py index ac70720dbe..79ed2c7d7a 100644 --- a/src/bonsai/bonsai/bim/module/project/ui.py +++ b/src/bonsai/bonsai/bim/module/project/ui.py @@ -17,19 +17,27 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import os -import ifcopenshell -import bonsai.bim -import bonsai.tool as tool -from bonsai.bim.helper import prop_with_search, draw_attributes -from bpy.types import Panel, Menu, UIList -from bonsai.bim.ifc import IfcStore -from bonsai.bim.module.project.data import ProjectData, LinksData from typing import TYPE_CHECKING +import bpy +import ifcopenshell +from bpy.types import Menu, Panel, UIList + +import bonsai.bim +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.project.data import LinksData, ProjectData + if TYPE_CHECKING: - from bonsai.bim.module.project.prop import LibraryElement, BIMProjectProperties, FilterCategory, Link + from bonsai.bim.module.project.prop import ( + BIMProjectProperties, + FilterCategory, + LibraryElement, + Link, + ) def file_import_menu(self, context): diff --git a/src/bonsai/bonsai/bim/module/project/workspace.py b/src/bonsai/bonsai/bim/module/project/workspace.py index 59b86e431d..a72981c625 100644 --- a/src/bonsai/bonsai/bim/module/project/workspace.py +++ b/src/bonsai/bonsai/bim/module/project/workspace.py @@ -17,9 +17,11 @@ # along with Bonsai. If not, see . import os + import bpy -import bonsai.tool as tool from bpy.types import WorkSpaceTool + +import bonsai.tool as tool from bonsai.bim.module.project.data import LinksData diff --git a/src/bonsai/bonsai/bim/module/pset/__init__.py b/src/bonsai/bonsai/bim/module/pset/__init__.py index 7e0d72061b..5284e88f36 100644 --- a/src/bonsai/bonsai/bim/module/pset/__init__.py +++ b/src/bonsai/bonsai/bim/module/pset/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddProposedProp, diff --git a/src/bonsai/bonsai/bim/module/pset/data.py b/src/bonsai/bonsai/bim/module/pset/data.py index 12b38efc98..969f54f387 100644 --- a/src/bonsai/bonsai/bim/module/pset/data.py +++ b/src/bonsai/bonsai/bim/module/pset/data.py @@ -23,9 +23,9 @@ import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.doc import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.bim.schema +import bonsai.bim.schema +import bonsai.tool as tool # TODO: Should this cache belong here? Dunno. Maybe. is_expanded: dict[int, bool] = {} diff --git a/src/bonsai/bonsai/bim/module/pset/operator.py b/src/bonsai/bonsai/bim/module/pset/operator.py index 4e063b4ada..3257760531 100644 --- a/src/bonsai/bonsai/bim/module/pset/operator.py +++ b/src/bonsai/bonsai/bim/module/pset/operator.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json -import ifcopenshell.api -import ifcopenshell.api.pset -import ifcopenshell.util.element -import bonsai.bim.schema -import bonsai.tool as tool -import bonsai.core.pset as core -import bonsai.bim.module.pset.data -from bonsai.bim.ifc import IfcStore from collections import defaultdict from typing import TYPE_CHECKING +import bpy +import ifcopenshell.api +import ifcopenshell.api.pset +import ifcopenshell.util.element + +import bonsai.bim.module.pset.data +import bonsai.bim.schema +import bonsai.core.pset as core +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore + if TYPE_CHECKING: - from bonsai.bim.module.pset.prop import RenamePropertyEntry, AddEditPropertyEntry + from bonsai.bim.module.pset.prop import AddEditPropertyEntry, RenamePropertyEntry class TogglePsetExpansion(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/pset/prop.py b/src/bonsai/bonsai/bim/module/pset/prop.py index d89ba62be1..4b16e15010 100644 --- a/src/bonsai/bonsai/bim/module/pset/prop.py +++ b/src/bonsai/bonsai/bim/module/pset/prop.py @@ -16,33 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy -import bonsai.bim.schema import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.doc import ifcopenshell.util.element -import bonsai.tool as tool -from bonsai.bim.prop import Attribute, StrProperty -from bonsai.bim.module.pset.data import ( - AddEditCustomPropertiesData, - ObjectPsetsData, - MaterialPsetsData, - PsetsGeneralData, -) -from bonsai.bim.module.material.data import ObjectMaterialData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import Union, Literal, TYPE_CHECKING, get_args, Literal +from bpy.types import PropertyGroup + +import bonsai.bim.schema +import bonsai.tool as tool +from bonsai.bim.module.material.data import ObjectMaterialData +from bonsai.bim.module.pset.data import ( + AddEditCustomPropertiesData, + MaterialPsetsData, + ObjectPsetsData, + PsetsGeneralData, +) +from bonsai.bim.prop import Attribute, StrProperty psetnames = {} qtonames = {} diff --git a/src/bonsai/bonsai/bim/module/pset/ui.py b/src/bonsai/bonsai/bim/module/pset/ui.py index abd3a8b90f..03d6f8bb36 100644 --- a/src/bonsai/bonsai/bim/module/pset/ui.py +++ b/src/bonsai/bonsai/bim/module/pset/ui.py @@ -17,26 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Optional, assert_never + import bpy -import bonsai.tool as tool from bpy.types import Panel -from bonsai.bim.helper import prop_with_search, get_display_value, draw_attribute + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attribute, get_display_value, prop_with_search +from bonsai.bim.module.material.data import ObjectMaterialData from bonsai.bim.module.pset.data import ( - ObjectPsetsData, - ObjectQtosData, + GroupPsetData, + GroupQtosData, MaterialPsetsData, MaterialSetItemPsetsData, - TaskQtosData, - ResourceQtosData, - ResourcePsetsData, - GroupQtosData, - GroupPsetData, + ObjectPsetsData, + ObjectQtosData, ProfilePsetsData, + ResourcePsetsData, + ResourceQtosData, + TaskQtosData, WorkSchedulePsetsData, ZonePsetsData, ) -from bonsai.bim.module.material.data import ObjectMaterialData -from typing import Any, Optional, TYPE_CHECKING, assert_never, Literal if TYPE_CHECKING: from bonsai.bim.module.pset.prop import IfcProperty, PsetProperties diff --git a/src/bonsai/bonsai/bim/module/pset_template/__init__.py b/src/bonsai/bonsai/bim/module/pset_template/__init__.py index 204824cb11..dc67e900fb 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/__init__.py +++ b/src/bonsai/bonsai/bim/module/pset_template/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddPropEnum, diff --git a/src/bonsai/bonsai/bim/module/pset_template/data.py b/src/bonsai/bonsai/bim/module/pset_template/data.py index 84d65f25f1..1725b974f1 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/data.py +++ b/src/bonsai/bonsai/bim/module/pset_template/data.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . import os -import bpy import pathlib +from typing import Any + +import bpy import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.doc + import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from typing import Any def refresh(): diff --git a/src/bonsai/bonsai/bim/module/pset_template/operator.py b/src/bonsai/bonsai/bim/module/pset_template/operator.py index 0711376439..e956917df3 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/operator.py +++ b/src/bonsai/bonsai/bim/module/pset_template/operator.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset_template -import bonsai.bim.schema + import bonsai.bim.handler +import bonsai.bim.schema import bonsai.tool as tool from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/pset_template/prop.py b/src/bonsai/bonsai/bim/module/pset_template/prop.py index fdd6188a76..9ec31b364f 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/prop.py +++ b/src/bonsai/bonsai/bim/module/pset_template/prop.py @@ -17,26 +17,28 @@ # along with Bonsai. If not, see . import os +from typing import TYPE_CHECKING + import bpy import ifcopenshell import ifcopenshell.util.attribute -from ifcopenshell.util.doc import get_attribute_doc -import bonsai.tool as tool -from bonsai.bim.module.pset_template.data import PsetTemplatesData -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.ifc import IfcStore -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup +from ifcopenshell.util.doc import get_attribute_doc + +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.pset_template.data import PsetTemplatesData +from bonsai.bim.prop import Attribute, StrProperty def updatePsetTemplateFiles(self, context): diff --git a/src/bonsai/bonsai/bim/module/pset_template/ui.py b/src/bonsai/bonsai/bim/module/pset_template/ui.py index af46fdc0e7..6576e8f56c 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/ui.py +++ b/src/bonsai/bonsai/bim/module/pset_template/ui.py @@ -17,8 +17,9 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool from bpy.types import Panel + +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.pset_template.data import PsetTemplatesData diff --git a/src/bonsai/bonsai/bim/module/qto/__init__.py b/src/bonsai/bonsai/bim/module/qto/__init__.py index f372462f73..f4d5becb73 100644 --- a/src/bonsai/bonsai/bim/module/qto/__init__.py +++ b/src/bonsai/bonsai/bim/module/qto/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.CalculateCircleRadius, diff --git a/src/bonsai/bonsai/bim/module/qto/calculator.py b/src/bonsai/bonsai/bim/module/qto/calculator.py index 091d7e1f9f..c0e5aa474f 100644 --- a/src/bonsai/bonsai/bim/module/qto/calculator.py +++ b/src/bonsai/bonsai/bim/module/qto/calculator.py @@ -16,21 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math +from typing import Literal, Optional, Union, assert_never + import bmesh -import mathutils -import bonsai.tool as tool +import bpy +import ifc5d.qto import ifcopenshell import ifcopenshell.geom import ifcopenshell.util.element -import ifc5d.qto -from mathutils import Vector, Matrix +import mathutils +from mathutils import Matrix, Vector from mathutils.bvhtree import BVHTree from shapely.geometry import Polygon from shapely.ops import unary_union -from typing import Literal, Union, Optional, assert_never +import bonsai.tool as tool AxisType = Literal["x", "y", "z"] VectorTuple = tuple[float, float, float] diff --git a/src/bonsai/bonsai/bim/module/qto/data.py b/src/bonsai/bonsai/bim/module/qto/data.py index ef780d749f..162a4bf7c6 100644 --- a/src/bonsai/bonsai/bim/module/qto/data.py +++ b/src/bonsai/bonsai/bim/module/qto/data.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/qto/helper.py b/src/bonsai/bonsai/bim/module/qto/helper.py index 50253cbb63..d4f94c491f 100644 --- a/src/bonsai/bonsai/bim/module/qto/helper.py +++ b/src/bonsai/bonsai/bim/module/qto/helper.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh -import bonsai.tool as tool from collections.abc import Callable +import bmesh +import bpy + +import bonsai.tool as tool + def calculate_height(obj: bpy.types.Object) -> float: return obj.dimensions[2] diff --git a/src/bonsai/bonsai/bim/module/qto/operator.py b/src/bonsai/bonsai/bim/module/qto/operator.py index 47b0f5059a..572c65e258 100644 --- a/src/bonsai/bonsai/bim/module/qto/operator.py +++ b/src/bonsai/bonsai/bim/module/qto/operator.py @@ -19,11 +19,12 @@ import bpy import ifcopenshell import ifcopenshell.api -import bonsai.tool as tool -import bonsai.core.qto as core -from bonsai.bim.module.qto import helper from ifcopenshell.util.profiler import Profiler +import bonsai.core.qto as core +import bonsai.tool as tool +from bonsai.bim.module.qto import helper + class CalculateCircleRadius(bpy.types.Operator): bl_idname = "bim.calculate_circle_radius" diff --git a/src/bonsai/bonsai/bim/module/qto/prop.py b/src/bonsai/bonsai/bim/module/qto/prop.py index 57e04d4cc1..9952285d30 100644 --- a/src/bonsai/bonsai/bim/module/qto/prop.py +++ b/src/bonsai/bonsai/bim/module/qto/prop.py @@ -16,23 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifc5d.qto -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) from typing import TYPE_CHECKING, Union +import bpy +import ifc5d.qto +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, StrProperty CALCULATOR_FUNCTION_ENUM_ITEMS: list[Union[tuple[str, str, str], None]] = [] diff --git a/src/bonsai/bonsai/bim/module/qto/ui.py b/src/bonsai/bonsai/bim/module/qto/ui.py index 9029a63066..032df25b20 100644 --- a/src/bonsai/bonsai/bim/module/qto/ui.py +++ b/src/bonsai/bonsai/bim/module/qto/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool from bonsai.bim.module.qto.data import QtoData diff --git a/src/bonsai/bonsai/bim/module/resource/__init__.py b/src/bonsai/bonsai/bim/module/resource/__init__.py index ae08660afd..89f21f4e29 100644 --- a/src/bonsai/bonsai/bim/module/resource/__init__.py +++ b/src/bonsai/bonsai/bim/module/resource/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddResource, diff --git a/src/bonsai/bonsai/bim/module/resource/data.py b/src/bonsai/bonsai/bim/module/resource/data.py index 601b61eb7b..cc862cf1dd 100644 --- a/src/bonsai/bonsai/bim/module/resource/data.py +++ b/src/bonsai/bonsai/bim/module/resource/data.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy -import bonsai.tool as tool import ifcopenshell import ifcopenshell.util.constraint import ifcopenshell.util.cost import ifcopenshell.util.date import ifcopenshell.util.resource -from typing import Any + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/resource/operator.py b/src/bonsai/bonsai/bim/module/resource/operator.py index 4d9a28c061..a82cc22918 100644 --- a/src/bonsai/bonsai/bim/module/resource/operator.py +++ b/src/bonsai/bonsai/bim/module/resource/operator.py @@ -18,10 +18,11 @@ import bpy import ifcopenshell.api.pset -from bpy_extras.io_utils import ImportHelper, ExportHelper -from bonsai.bim.module.resource.ui import draw_productivity_ui +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.core.resource as core import bonsai.tool as tool +from bonsai.bim.module.resource.ui import draw_productivity_ui class LoadResources(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/resource/prop.py b/src/bonsai/bonsai/bim/module/resource/prop.py index 350417aa69..4c6828e56c 100644 --- a/src/bonsai/bonsai/bim/module/resource/prop.py +++ b/src/bonsai/bonsai/bim/module/resource/prop.py @@ -16,27 +16,29 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy import ifcopenshell.api import ifcopenshell.api.resource import ifcopenshell.util.resource -import bonsai.tool as tool +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + import bonsai.bim.module.pset.data import bonsai.bim.module.resource.data import bonsai.bim.module.sequence.data +import bonsai.tool as tool from bonsai.bim.prop import Attribute, ISODuration -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import TYPE_CHECKING, Literal, get_args quantitytypes_enum: dict[str, tool.Blender.BLENDER_ENUM_ITEMS] = {} diff --git a/src/bonsai/bonsai/bim/module/resource/ui.py b/src/bonsai/bonsai/bim/module/resource/ui.py index b061600978..679eed8782 100644 --- a/src/bonsai/bonsai/bim/module/resource/ui.py +++ b/src/bonsai/bonsai/bim/module/resource/ui.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy -import bonsai.tool as tool -import bonsai.bim.helper from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.module.resource.data import ResourceData -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: + from bonsai.bim.module.resource.prop import BIMResourceTreeProperties, Resource from bonsai.bim.prop import ISODuration - from bonsai.bim.module.resource.prop import Resource, BIMResourceTreeProperties class BIM_PT_resources(Panel): diff --git a/src/bonsai/bonsai/bim/module/root/__init__.py b/src/bonsai/bonsai/bim/module/root/__init__.py index 3e6f280eb2..7192dcdff4 100644 --- a/src/bonsai/bonsai/bim/module/root/__init__.py +++ b/src/bonsai/bonsai/bim/module/root/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddElement, diff --git a/src/bonsai/bonsai/bim/module/root/data.py b/src/bonsai/bonsai/bim/module/root/data.py index 7690210c9b..66412e7d48 100644 --- a/src/bonsai/bonsai/bim/module/root/data.py +++ b/src/bonsai/bonsai/bim/module/root/data.py @@ -17,13 +17,19 @@ # along with Bonsai. If not, see . from collections import defaultdict +from typing import Union + import bpy import ifcopenshell.util.attribute import ifcopenshell.util.element import ifcopenshell.util.schema -from ifcopenshell.util.doc import get_entity_doc, get_predefined_type_doc, get_class_suggestions +from ifcopenshell.util.doc import ( + get_class_suggestions, + get_entity_doc, + get_predefined_type_doc, +) + import bonsai.tool as tool -from typing import Union def refresh(): diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index 5a0782203e..a2ac73f200 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -16,8 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from typing import TYPE_CHECKING + import bmesh +import bpy import idprop import ifcopenshell import ifcopenshell.api @@ -25,20 +27,20 @@ import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root -import ifcopenshell.util.schema import ifcopenshell.util.element +import ifcopenshell.util.schema import ifcopenshell.util.shape_builder import ifcopenshell.util.type import ifcopenshell.util.unit -import bonsai.bim.handler -import bonsai.core.root as core -import bonsai.core.geometry -import bonsai.tool as tool -import bonsai.bim.module.root.prop as root_prop -from bonsai.bim.ifc import IfcStore -from bonsai.bim.helper import get_enum_items, prop_with_search from mathutils import Vector -from typing import TYPE_CHECKING + +import bonsai.bim.handler +import bonsai.bim.module.root.prop as root_prop +import bonsai.core.geometry +import bonsai.core.root as core +import bonsai.tool as tool +from bonsai.bim.helper import get_enum_items, prop_with_search +from bonsai.bim.ifc import IfcStore class EnableReassignClass(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/root/prop.py b/src/bonsai/bonsai/bim/module/root/prop.py index 9bd00c4c68..854eb6d0f0 100644 --- a/src/bonsai/bonsai/bim/module/root/prop.py +++ b/src/bonsai/bonsai/bim/module/root/prop.py @@ -16,25 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.schema import ifcopenshell.util.type -import bonsai.tool as tool -from bonsai.bim.module.root.data import IfcClassData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.root.data import IfcClassData def get_ifc_predefined_types(self: "BIMRootProperties", context: bpy.types.Context) -> list[tuple[str, str]]: diff --git a/src/bonsai/bonsai/bim/module/root/ui.py b/src/bonsai/bonsai/bim/module/root/ui.py index facf619ad8..72eadb4e39 100644 --- a/src/bonsai/bonsai/bim/module/root/ui.py +++ b/src/bonsai/bonsai/bim/module/root/ui.py @@ -17,12 +17,13 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool -import bonsai.bim.module.root.prop as root_prop from bpy.types import Panel + +import bonsai.bim.module.root.prop as root_prop +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search -from bonsai.bim.module.root.data import IfcClassData from bonsai.bim.module.model.data import AuthoringData +from bonsai.bim.module.root.data import IfcClassData class BIM_PT_class(Panel): diff --git a/src/bonsai/bonsai/bim/module/search/__init__.py b/src/bonsai/bonsai/bim/module/search/__init__.py index 88cb2f6ed4..5033fd3eb4 100644 --- a/src/bonsai/bonsai/bim/module/search/__init__.py +++ b/src/bonsai/bonsai/bim/module/search/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ActivateContainerFilter, diff --git a/src/bonsai/bonsai/bim/module/search/data.py b/src/bonsai/bonsai/bim/module/search/data.py index 4bde0aa359..8c2fad00b0 100644 --- a/src/bonsai/bonsai/bim/module/search/data.py +++ b/src/bonsai/bonsai/bim/module/search/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy import ifcopenshell.util.element -import bonsai.tool as tool from natsort import natsorted +import bonsai.tool as tool + def refresh(): SearchData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/search/operator.py b/src/bonsai/bonsai/bim/module/search/operator.py index a8c79c11bb..47e87a3caa 100644 --- a/src/bonsai/bonsai/bim/module/search/operator.py +++ b/src/bonsai/bonsai/bim/module/search/operator.py @@ -16,32 +16,34 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import json import bisect +import json import traceback +from typing import TYPE_CHECKING, Literal, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.group import ifcopenshell.util.element import ifcopenshell.util.selector -import bonsai.tool as tool -import bonsai.core.search as core -from bonsai.bim.ifc import IfcStore -from natsort import natsorted -from bpy.types import PropertyGroup, Operator from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import Operator, PropertyGroup +from natsort import natsorted + +import bonsai.core.search as core +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore from bonsai.bim.prop import StrProperty -from typing import TYPE_CHECKING, Literal, get_args, assert_never def draw_text_editor_header(self, context): diff --git a/src/bonsai/bonsai/bim/module/search/prop.py b/src/bonsai/bonsai/bim/module/search/prop.py index 3cb8a12252..e3403b5abe 100644 --- a/src/bonsai/bonsai/bim/module/search/prop.py +++ b/src/bonsai/bonsai/bim/module/search/prop.py @@ -16,24 +16,31 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy -import bonsai.tool as tool import ifcopenshell.util.schema -from bonsai.bim.prop import ObjProperty, BIMFilterGroup -from bonsai.bim.module.search.data import SearchData, ColourByPropertyData, SelectSimilarData -from bpy.types import PropertyGroup -from . import ui, prop, operator from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, get_args +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.search.data import ( + ColourByPropertyData, + SearchData, + SelectSimilarData, +) +from bonsai.bim.prop import BIMFilterGroup, ObjProperty + +from . import operator, prop, ui def get_element_key(self: "BIMSearchProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/search/ui.py b/src/bonsai/bonsai/bim/module/search/ui.py index 3481e3709b..3b01fdcbbe 100644 --- a/src/bonsai/bonsai/bim/module/search/ui.py +++ b/src/bonsai/bonsai/bim/module/search/ui.py @@ -17,15 +17,26 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -import bonsai.bim.helper -from bpy.types import Panel -from bonsai.bim.module.search.data import SearchData, ColourByPropertyData, SelectSimilarData + from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.module.search.data import ( + ColourByPropertyData, + SearchData, + SelectSimilarData, +) + if TYPE_CHECKING: - from bonsai.bim.module.search.prop import BIMSearchProperties, BIMColour, BIMFilterItem + from bonsai.bim.module.search.prop import ( + BIMColour, + BIMFilterItem, + BIMSearchProperties, + ) class BIM_PT_search(Panel): diff --git a/src/bonsai/bonsai/bim/module/sequence/__init__.py b/src/bonsai/bonsai/bim/module/sequence/__init__.py index 3262b64527..e15d4e80ee 100644 --- a/src/bonsai/bonsai/bim/module/sequence/__init__.py +++ b/src/bonsai/bonsai/bim/module/sequence/__init__.py @@ -19,7 +19,8 @@ # pyright: reportAttributeAccessIssue=false import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddAnimationCamera, diff --git a/src/bonsai/bonsai/bim/module/sequence/data.py b/src/bonsai/bonsai/bim/module/sequence/data.py index 94df71eacd..7ea6050ca3 100644 --- a/src/bonsai/bonsai/bim/module/sequence/data.py +++ b/src/bonsai/bonsai/bim/module/sequence/data.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json +from typing import Any + import bpy -import bonsai.tool as tool import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.date from ifcopenshell.util.doc import get_predefined_type_doc -import json -from typing import Any + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/sequence/helper.py b/src/bonsai/bonsai/bim/module/sequence/helper.py index 43dcd1d59b..50d2367144 100644 --- a/src/bonsai/bonsai/bim/module/sequence/helper.py +++ b/src/bonsai/bonsai/bim/module/sequence/helper.py @@ -18,12 +18,13 @@ from __future__ import annotations -import isodate +from datetime import datetime, timedelta +from typing import Any, Union + import bpy -from dateutil import parser import ifcopenshell.util.date -from datetime import timedelta, datetime -from typing import Union, Any +import isodate +from dateutil import parser from bonsai.bim.prop import ISODuration diff --git a/src/bonsai/bonsai/bim/module/sequence/operator.py b/src/bonsai/bonsai/bim/module/sequence/operator.py index c07b9a0496..2b4c317cd8 100644 --- a/src/bonsai/bonsai/bim/module/sequence/operator.py +++ b/src/bonsai/bonsai/bim/module/sequence/operator.py @@ -18,23 +18,23 @@ # pyright: reportUnnecessaryTypeIgnoreComment=error +import calendar +import time import types - from collections import Counter +from datetime import datetime from functools import cache +from typing import TYPE_CHECKING, Union, assert_never, get_args import bpy -import time -import calendar import ifcopenshell.api.pset import ifcopenshell.util.element +from bpy_extras.io_utils import ExportHelper, ImportHelper +from dateutil import parser, relativedelta + import bonsai.bim.schema import bonsai.core.sequence as core import bonsai.tool as tool -from datetime import datetime -from dateutil import parser, relativedelta -from bpy_extras.io_utils import ImportHelper, ExportHelper -from typing import Union, get_args, TYPE_CHECKING, assert_never if TYPE_CHECKING: from bpy.stub_internal.rna_enums import OperatorReturnItems diff --git a/src/bonsai/bonsai/bim/module/sequence/prop.py b/src/bonsai/bonsai/bim/module/sequence/prop.py index 1c35910e6c..6a5937ac45 100644 --- a/src/bonsai/bonsai/bim/module/sequence/prop.py +++ b/src/bonsai/bonsai/bim/module/sequence/prop.py @@ -16,32 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy -import isodate import ifcopenshell.api import ifcopenshell.api.sequence import ifcopenshell.util.attribute import ifcopenshell.util.date -import bonsai.tool as tool -import bonsai.core.sequence as core -from bonsai.bim.module.sequence.data import SequenceData, AnimationColorSchemeData, refresh as refresh_sequence_data -import bonsai.bim.module.resource.data -import bonsai.bim.module.pset.data -from mathutils import Color -from bonsai.bim.prop import Attribute, ISODuration -from dateutil import parser -from bpy.types import PropertyGroup +import isodate from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, Union, get_args +from bpy.types import PropertyGroup +from dateutil import parser +from mathutils import Color + +import bonsai.bim.module.pset.data +import bonsai.bim.module.resource.data +import bonsai.core.sequence as core +import bonsai.tool as tool +from bonsai.bim.module.sequence.data import AnimationColorSchemeData, SequenceData +from bonsai.bim.module.sequence.data import refresh as refresh_sequence_data +from bonsai.bim.prop import Attribute, ISODuration def getTaskColumns(self, context): diff --git a/src/bonsai/bonsai/bim/module/sequence/ui.py b/src/bonsai/bonsai/bim/module/sequence/ui.py index 9178268c3a..0ecd772276 100644 --- a/src/bonsai/bonsai/bim/module/sequence/ui.py +++ b/src/bonsai/bonsai/bim/module/sequence/ui.py @@ -16,26 +16,32 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Any, Optional + import bpy import ifcopenshell import isodate -import bonsai.tool as tool -import bonsai.bim.helper from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes from bonsai.bim.module.sequence.data import ( + AnimationColorSchemeData, + SequenceData, + StatusData, + TaskICOMData, WorkPlansData, WorkScheduleData, - SequenceData, - TaskICOMData, - AnimationColorSchemeData, - StatusData, ) -from typing import Any, Optional, TYPE_CHECKING if TYPE_CHECKING: + from bonsai.bim.module.sequence.prop import ( + BIMTaskTreeProperties, + BIMWorkScheduleProperties, + Task, + ) from bonsai.bim.prop import Attribute - from bonsai.bim.module.sequence.prop import BIMWorkScheduleProperties, BIMTaskTreeProperties, Task class BIM_PT_status(Panel): diff --git a/src/bonsai/bonsai/bim/module/spatial/__init__.py b/src/bonsai/bonsai/bim/module/spatial/__init__.py index 6c62218532..57cc84a8f1 100644 --- a/src/bonsai/bonsai/bim/module/spatial/__init__.py +++ b/src/bonsai/bonsai/bim/module/spatial/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, workspace + +from . import operator, prop, ui, workspace classes = ( operator.AssignContainer, diff --git a/src/bonsai/bonsai/bim/module/spatial/data.py b/src/bonsai/bonsai/bim/module/spatial/data.py index baed31f49d..5885a9a76e 100644 --- a/src/bonsai/bonsai/bim/module/spatial/data.py +++ b/src/bonsai/bonsai/bim/module/spatial/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifcopenshell.util.element from typing import Any +import bpy +import ifcopenshell.util.element + +import bonsai.tool as tool + def refresh(): SpatialData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/spatial/decorator.py b/src/bonsai/bonsai/bim/module/spatial/decorator.py index 824fafec1f..8d66d4e8a6 100644 --- a/src/bonsai/bonsai/bim/module/spatial/decorator.py +++ b/src/bonsai/bonsai/bim/module/spatial/decorator.py @@ -17,13 +17,14 @@ # along with Bonsai. If not, see . import blf -import gpu import bmesh -import bonsai.tool as tool +import gpu from bpy.types import SpaceView3D -from mathutils import Vector -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Vector + +import bonsai.tool as tool class GridDecorator: diff --git a/src/bonsai/bonsai/bim/module/spatial/operator.py b/src/bonsai/bonsai/bim/module/spatial/operator.py index 075c3a9a38..8e88f64cee 100644 --- a/src/bonsai/bonsai/bim/module/spatial/operator.py +++ b/src/bonsai/bonsai/bim/module/spatial/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.core.spatial as core + import bonsai.bim.handler -from typing import TYPE_CHECKING +import bonsai.core.spatial as core +import bonsai.tool as tool class ReferenceStructure(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/spatial/prop.py b/src/bonsai/bonsai/bim/module/spatial/prop.py index 3d54581551..2f12e164fc 100644 --- a/src/bonsai/bonsai/bim/module/spatial/prop.py +++ b/src/bonsai/bonsai/bim/module/spatial/prop.py @@ -16,28 +16,30 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy -from bonsai.bim.prop import ObjProperty -from bonsai.bim.module.spatial.data import SpatialDecompositionData -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -import bonsai.tool as tool -import bonsai.bim.handler -import bonsai.core.geometry import ifcopenshell import ifcopenshell.api.attribute import ifcopenshell.util.unit +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +import bonsai.bim.handler +import bonsai.core.geometry +import bonsai.tool as tool +from bonsai.bim.module.spatial.data import SpatialDecompositionData +from bonsai.bim.prop import ObjProperty from bonsai.tool.unit import parse_distance_string -from typing import TYPE_CHECKING, Union, Literal def get_subelement_class( diff --git a/src/bonsai/bonsai/bim/module/spatial/ui.py b/src/bonsai/bonsai/bim/module/spatial/ui.py index acc604f992..69d9068f85 100644 --- a/src/bonsai/bonsai/bim/module/spatial/ui.py +++ b/src/bonsai/bonsai/bim/module/spatial/ui.py @@ -17,14 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, cast + import bpy from bpy.types import Panel, UIList -from bonsai.bim.module.spatial.data import SpatialData, SpatialDecompositionData + import bonsai.tool as tool -from typing import TYPE_CHECKING, cast, Any +from bonsai.bim.module.spatial.data import SpatialData, SpatialDecompositionData if TYPE_CHECKING: - from bonsai.bim.module.spatial.prop import BIMSpatialDecompositionProperties, BIMContainer, Element + from bonsai.bim.module.spatial.prop import ( + BIMContainer, + BIMSpatialDecompositionProperties, + Element, + ) class BIM_PT_spatial(Panel): diff --git a/src/bonsai/bonsai/bim/module/spatial/workspace.py b/src/bonsai/bonsai/bim/module/spatial/workspace.py index aa57b03631..6f34099861 100644 --- a/src/bonsai/bonsai/bim/module/spatial/workspace.py +++ b/src/bonsai/bonsai/bim/module/spatial/workspace.py @@ -18,12 +18,14 @@ import os +from functools import partial + import bpy +from bpy.types import WorkSpaceTool + +import bonsai.core.spatial import bonsai.tool as tool from bonsai.bim.module.model.data import AuthoringData -from bpy.types import WorkSpaceTool -import bonsai.core.spatial -from functools import partial class SpatialTool(WorkSpaceTool): diff --git a/src/bonsai/bonsai/bim/module/structural/__init__.py b/src/bonsai/bonsai/bim/module/structural/__init__.py index db72ad497c..3fa0cb9497 100644 --- a/src/bonsai/bonsai/bim/module/structural/__init__.py +++ b/src/bonsai/bonsai/bim/module/structural/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, workspace + +from . import operator, prop, ui, workspace classes = ( operator.ShowLoads, diff --git a/src/bonsai/bonsai/bim/module/structural/data.py b/src/bonsai/bonsai/bim/module/structural/data.py index f3215ddff3..1cdfcc2297 100644 --- a/src/bonsai/bonsai/bim/module/structural/data.py +++ b/src/bonsai/bonsai/bim/module/structural/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifcopenshell.util.doc +import bonsai.tool as tool + def refresh(): StructuralBoundaryConditionsData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/structural/decorator.py b/src/bonsai/bonsai/bim/module/structural/decorator.py index 2bcc90c647..32925be61c 100644 --- a/src/bonsai/bonsai/bim/module/structural/decorator.py +++ b/src/bonsai/bonsai/bim/module/structural/decorator.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -from mathutils import Vector -import numpy as np +from collections.abc import Iterable +from typing import Union + +import blf import bpy import gpu -import blf -import bonsai.tool as tool +import numpy as np from bpy.types import SpaceView3D from gpu_extras.batch import batch_for_shader -from typing import Union -from collections.abc import Iterable +from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.structural.load_decoration_data import ShaderInfo diff --git a/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py b/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py index 7df67e82d4..132c305ad1 100644 --- a/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py +++ b/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh -import numpy as np +from collections.abc import Iterable from math import sin -from mathutils import Vector +from typing import Literal, TypedDict + +import bmesh +import bpy import ifcopenshell import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.unit import ifcopenshell.util.unit as ifcunit +import numpy as np +from mathutils import Vector + import bonsai.tool as tool from bonsai.bim.module.structural.shader import DecorationShader -from typing import Literal, TypedDict -from collections.abc import Iterable class MemberInfo(TypedDict): diff --git a/src/bonsai/bonsai/bim/module/structural/operator.py b/src/bonsai/bonsai/bim/module/structural/operator.py index 9840f87c1e..edb3ab18ae 100644 --- a/src/bonsai/bonsai/bim/module/structural/operator.py +++ b/src/bonsai/bonsai/bim/module/structural/operator.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from math import degrees +from typing import TYPE_CHECKING, Any, Literal + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.group import ifcopenshell.api.structural +from mathutils import Matrix, Vector + import bonsai.bim.helper import bonsai.core.structural as core import bonsai.tool as tool -from math import degrees -from mathutils import Vector, Matrix from bonsai.bim.module.structural.decorator import LoadsDecorator -from typing import Literal, Any, TYPE_CHECKING class ShowLoads(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/structural/prop.py b/src/bonsai/bonsai/bim/module/structural/prop.py index c0db44fac6..24d6ead470 100644 --- a/src/bonsai/bonsai/bim/module/structural/prop.py +++ b/src/bonsai/bonsai/bim/module/structural/prop.py @@ -17,27 +17,29 @@ # along with Bonsai. If not, see . from math import radians +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.structural.data import ( - StructuralLoadCasesData, - StructuralLoadsData, - BoundaryConditionsData, - LoadGroupDecorationData, -) -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.structural.data import ( + BoundaryConditionsData, + LoadGroupDecorationData, + StructuralLoadCasesData, + StructuralLoadsData, +) +from bonsai.bim.prop import Attribute, StrProperty def get_load_groups_to_show(self: "BIMStructuralProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/structural/shader.py b/src/bonsai/bonsai/bim/module/structural/shader.py index 389ed34839..d6f92028d6 100644 --- a/src/bonsai/bonsai/bim/module/structural/shader.py +++ b/src/bonsai/bonsai/bim/module/structural/shader.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu from typing import Literal +import gpu + class DecorationShader: "shader for the load decorations" diff --git a/src/bonsai/bonsai/bim/module/structural/ui.py b/src/bonsai/bonsai/bim/module/structural/ui.py index 44b56633a1..6d93bd3ffd 100644 --- a/src/bonsai/bonsai/bim/module/structural/ui.py +++ b/src/bonsai/bonsai/bim/module/structural/ui.py @@ -17,31 +17,34 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Union + import bpy -import bonsai.tool as tool -import bonsai.bim.helper from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes, prop_with_search from bonsai.bim.module.structural.data import ( - StructuralBoundaryConditionsData, + BoundaryConditionsData, ConnectedStructuralMembersData, - StructuralMemberData, StructuralAnalysisModelsData, + StructuralBoundaryConditionsData, + StructuralConnectionData, StructuralLoadCasesData, StructuralLoadsData, - StructuralConnectionData, - BoundaryConditionsData, + StructuralMemberData, ) -from typing import TYPE_CHECKING, Any, Union if TYPE_CHECKING: from bonsai.bim.module.structural.prop import ( - BIMStructuralProperties, BIMObjectStructuralProperties, + BIMStructuralProperties, BoundaryCondition, - StructuralLoad, StructuralActivity, StructuralAnalysisModel, + StructuralLoad, ) diff --git a/src/bonsai/bonsai/bim/module/structural/workspace.py b/src/bonsai/bonsai/bim/module/structural/workspace.py index fbacac3e1a..407f017834 100644 --- a/src/bonsai/bonsai/bim/module/structural/workspace.py +++ b/src/bonsai/bonsai/bim/module/structural/workspace.py @@ -18,11 +18,13 @@ import os -import bpy -import bonsai.tool as tool -from bpy.types import WorkSpaceTool from functools import partial +import bpy +from bpy.types import WorkSpaceTool + +import bonsai.tool as tool + class StructuralTool(WorkSpaceTool): bl_space_type = "VIEW_3D" diff --git a/src/bonsai/bonsai/bim/module/style/__init__.py b/src/bonsai/bonsai/bim/module/style/__init__.py index ba44a727b1..6f13fd6f2d 100644 --- a/src/bonsai/bonsai/bim/module/style/__init__.py +++ b/src/bonsai/bonsai/bim/module/style/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ActivateExternalStyle, diff --git a/src/bonsai/bonsai/bim/module/style/data.py b/src/bonsai/bonsai/bim/module/style/data.py index 83e453d7a5..dabf6f3ba7 100644 --- a/src/bonsai/bonsai/bim/module/style/data.py +++ b/src/bonsai/bonsai/bim/module/style/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Union + import bpy import ifcopenshell import ifcopenshell.util.schema -import bonsai.tool as tool from ifcopenshell.util.doc import get_entity_doc -from typing import Union + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/style/operator.py b/src/bonsai/bonsai/bim/module/style/operator.py index 4a036652f2..a26cce67f1 100644 --- a/src/bonsai/bonsai/bim/module/style/operator.py +++ b/src/bonsai/bonsai/bim/module/style/operator.py @@ -17,19 +17,21 @@ # along with Bonsai. If not, see . import os +from pathlib import Path +from typing import Any, Union + import bpy -import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.core.style as core import ifcopenshell.api import ifcopenshell.api.style import ifcopenshell.util.representation import ifcopenshell.util.unit -from bonsai.bim.module.style.prop import ColourRgb from bpy_extras.io_utils import ImportHelper -from pathlib import Path from mathutils import Vector -from typing import Any, Union + +import bonsai.bim.helper +import bonsai.core.style as core +import bonsai.tool as tool +from bonsai.bim.module.style.prop import ColourRgb # TODO: is this still relevant or can it be deleted? diff --git a/src/bonsai/bonsai/bim/module/style/prop.py b/src/bonsai/bonsai/bim/module/style/prop.py index 42866486c2..b1660dfd4c 100644 --- a/src/bonsai/bonsai/bim/module/style/prop.py +++ b/src/bonsai/bonsai/bim/module/style/prop.py @@ -16,25 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import gettext +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.style.data import StylesData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup -import gettext -from typing import Literal, Union, TYPE_CHECKING, get_args - +import bonsai.tool as tool +from bonsai.bim.module.style.data import StylesData +from bonsai.bim.prop import Attribute, StrProperty _ = gettext.gettext diff --git a/src/bonsai/bonsai/bim/module/style/ui.py b/src/bonsai/bonsai/bim/module/style/ui.py index 37c46b6d63..54ca4f5aa4 100644 --- a/src/bonsai/bonsai/bim/module/style/ui.py +++ b/src/bonsai/bonsai/bim/module/style/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel, UIList -from bonsai.bim.module.style.data import StylesData, BlenderMaterialStyleData -from typing import TYPE_CHECKING +from bonsai.bim.module.style.data import BlenderMaterialStyleData, StylesData if TYPE_CHECKING: from bonsai.bim.module.style.prop import BIMStylesProperties, Style diff --git a/src/bonsai/bonsai/bim/module/system/__init__.py b/src/bonsai/bonsai/bim/module/system/__init__.py index f44270cbe8..d08046ee8f 100644 --- a/src/bonsai/bonsai/bim/module/system/__init__.py +++ b/src/bonsai/bonsai/bim/module/system/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, decorator + +from . import decorator, operator, prop, ui classes = ( operator.AddPort, diff --git a/src/bonsai/bonsai/bim/module/system/data.py b/src/bonsai/bonsai/bim/module/system/data.py index 5db3d60114..c5d8897cc8 100644 --- a/src/bonsai/bonsai/bim/module/system/data.py +++ b/src/bonsai/bonsai/bim/module/system/data.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell import ifcopenshell.util.schema import ifcopenshell.util.system import ifcopenshell.util.unit from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool -from typing import Any, Union def refresh(): diff --git a/src/bonsai/bonsai/bim/module/system/decorator.py b/src/bonsai/bonsai/bim/module/system/decorator.py index c77b2f6879..f2448ba6e6 100644 --- a/src/bonsai/bonsai/bim/module/system/decorator.py +++ b/src/bonsai/bonsai/bim/module/system/decorator.py @@ -16,18 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from math import cos, radians, sin + +import bmesh import bpy import gpu -import bmesh -import bonsai.tool as tool -from math import sin, cos, radians -from bpy.types import SpaceView3D -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader import ifcopenshell -from bonsai.bim.module.system.data import SystemDecorationData from bpy.app.handlers import persistent +from bpy.types import SpaceView3D +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector +import bonsai.tool as tool +from bonsai.bim.module.system.data import SystemDecorationData ERROR_ELEMENTS_COLOR = (1, 0.2, 0.322, 1) # RED UNSPECIAL_ELEMENT_COLOR = (0.2, 0.2, 0.2, 1) # GREY diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 066e466bd0..8dd6724de3 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.system import ifcopenshell.util.system -import bonsai.tool as tool -import bonsai.core.system as core + import bonsai.bim.helper +import bonsai.core.system as core +import bonsai.tool as tool from bonsai.bim.module.system.data import PortData, SystemData -from typing import TYPE_CHECKING class LoadSystems(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index 8954ab67f2..a40f50a90e 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.bim.handler -import bonsai.tool as tool -from bonsai.bim.module.system.data import SystemData -import bonsai.bim.module.system.decorator as decorator -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.bim.handler +import bonsai.bim.module.system.decorator as decorator +import bonsai.tool as tool +from bonsai.bim.module.system.data import SystemData +from bonsai.bim.prop import Attribute, StrProperty def get_system_class(self: "BIMSystemProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index e41295f40e..d621adc02b 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -17,16 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.bim.helper -import bonsai.tool as tool -from bonsai.bim.helper import prop_with_search, draw_attributes -from bpy.types import Panel, UIList -from bonsai.bim.module.system.data import SystemData, ZonesData, ActiveObjectZonesData, ObjectSystemData, PortData + from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search +from bonsai.bim.module.system.data import ( + ActiveObjectZonesData, + ObjectSystemData, + PortData, + SystemData, + ZonesData, +) + if TYPE_CHECKING: - from bonsai.bim.module.system.prop import BIMSystemProperties, System, BIMZoneProperties, Zone + from bonsai.bim.module.system.prop import ( + BIMSystemProperties, + BIMZoneProperties, + System, + Zone, + ) FLOW_DIRECTION_TO_ICON = { diff --git a/src/bonsai/bonsai/bim/module/tester/__init__.py b/src/bonsai/bonsai/bim/module/tester/__init__.py index f31ac5e69a..db63d97b55 100644 --- a/src/bonsai/bonsai/bim/module/tester/__init__.py +++ b/src/bonsai/bonsai/bim/module/tester/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcTester, diff --git a/src/bonsai/bonsai/bim/module/tester/data.py b/src/bonsai/bonsai/bim/module/tester/data.py index d845c210f9..1d1a1c4901 100644 --- a/src/bonsai/bonsai/bim/module/tester/data.py +++ b/src/bonsai/bonsai/bim/module/tester/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifctester.reporter +import bonsai.tool as tool + def refresh(): TesterData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/tester/operator.py b/src/bonsai/bonsai/bim/module/tester/operator.py index 822ffd571c..6cb7999184 100644 --- a/src/bonsai/bonsai/bim/module/tester/operator.py +++ b/src/bonsai/bonsai/bim/module/tester/operator.py @@ -16,28 +16,30 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import time -import tempfile -import webbrowser -import traceback -import subprocess -import socket -import sys -import threading import asyncio -import socketio -from aiohttp import web +import os +import socket +import subprocess +import sys +import tempfile +import threading +import time +import traceback +import webbrowser +from pathlib import Path +from typing import Union + +import bpy +import ifcopenshell import ifctester import ifctester.ids import ifctester.reporter -import ifcopenshell -import bonsai.tool as tool -import bonsai.bim.handler +import socketio +from aiohttp import web from bpy_extras.io_utils import ExportHelper -from pathlib import Path -from typing import Union + +import bonsai.bim.handler +import bonsai.tool as tool webapp_process = None websocket_server_thread = None diff --git a/src/bonsai/bonsai/bim/module/tester/prop.py b/src/bonsai/bonsai/bim/module/tester/prop.py index fb20a0d4cd..4beb07c533 100644 --- a/src/bonsai/bonsai/bim/module/tester/prop.py +++ b/src/bonsai/bonsai/bim/module/tester/prop.py @@ -19,19 +19,20 @@ from typing import TYPE_CHECKING import bpy -from bonsai.bim.module.tester.data import TesterData -from bonsai.bim.prop import StrProperty, MultipleFileSelect -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +from bonsai.bim.module.tester.data import TesterData +from bonsai.bim.prop import MultipleFileSelect, StrProperty def update_active_specification_index(self: "IfcTesterProperties", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/tester/ui.py b/src/bonsai/bonsai/bim/module/tester/ui.py index 66648f4e43..e20bfde1c1 100644 --- a/src/bonsai/bonsai/bim/module/tester/ui.py +++ b/src/bonsai/bonsai/bim/module/tester/ui.py @@ -20,12 +20,12 @@ from __future__ import annotations from typing import TYPE_CHECKING -from bonsai.bim.ui import draw_multiline_text - import bpy from bpy.types import Panel, UIList + import bonsai.tool as tool from bonsai.bim.module.tester.data import TesterData +from bonsai.bim.ui import draw_multiline_text if TYPE_CHECKING: from bonsai.bim.module.tester.prop import ( diff --git a/src/bonsai/bonsai/bim/module/type/__init__.py b/src/bonsai/bonsai/bim/module/type/__init__.py index b77bcbfb8e..0aa61167d6 100644 --- a/src/bonsai/bonsai/bim/module/type/__init__.py +++ b/src/bonsai/bonsai/bim/module/type/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AssignType, diff --git a/src/bonsai/bonsai/bim/module/type/data.py b/src/bonsai/bonsai/bim/module/type/data.py index 3d0f506986..25beb2d36d 100644 --- a/src/bonsai/bonsai/bim/module/type/data.py +++ b/src/bonsai/bonsai/bim/module/type/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import ifcopenshell.util.type import ifcopenshell.util.element +import ifcopenshell.util.type from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/type/operator.py b/src/bonsai/bonsai/bim/module/type/operator.py index ce70f59231..66c87177f9 100644 --- a/src/bonsai/bonsai/bim/module/type/operator.py +++ b/src/bonsai/bonsai/bim/module/type/operator.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from typing import TYPE_CHECKING + import bmesh -import ifcopenshell.util.element -import ifcopenshell.util.schema -import ifcopenshell.util.representation -import ifcopenshell.util.type -import ifcopenshell.util.unit +import bpy import ifcopenshell.api import ifcopenshell.api.attribute import ifcopenshell.api.type +import ifcopenshell.util.element +import ifcopenshell.util.representation +import ifcopenshell.util.schema +import ifcopenshell.util.type +import ifcopenshell.util.unit + import bonsai.bim.helper -import bonsai.tool as tool import bonsai.core.geometry -import bonsai.core.type as core import bonsai.core.root -from typing import TYPE_CHECKING +import bonsai.core.type as core +import bonsai.tool as tool class AssignType(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/type/prop.py b/src/bonsai/bonsai/bim/module/type/prop.py index 2786636404..13141a7947 100644 --- a/src/bonsai/bonsai/bim/module/type/prop.py +++ b/src/bonsai/bonsai/bim/module/type/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell.util.element import ifcopenshell.util.type -from bonsai.bim.module.type.data import TypeData -from bonsai.bim.prop import Attribute -import bonsai.tool as tool -from typing import TYPE_CHECKING, Union -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.type.data import TypeData +from bonsai.bim.prop import Attribute def get_relating_type_class(self: "BIMTypeProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/type/ui.py b/src/bonsai/bonsai/bim/module/type/ui.py index d596997d5a..fbd1edd446 100644 --- a/src/bonsai/bonsai/bim/module/type/ui.py +++ b/src/bonsai/bonsai/bim/module/type/ui.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool -import bonsai.bim.module.type.prop as type_prop from bpy.types import Panel -from bonsai.bim.helper import prop_with_search, get_display_value + +import bonsai.bim.module.type.prop as type_prop +import bonsai.tool as tool +from bonsai.bim.helper import get_display_value, prop_with_search from bonsai.bim.module.type.data import TypeData diff --git a/src/bonsai/bonsai/bim/module/unit/__init__.py b/src/bonsai/bonsai/bim/module/unit/__init__.py index 29f209dcd3..a6e65f605e 100644 --- a/src/bonsai/bonsai/bim/module/unit/__init__.py +++ b/src/bonsai/bonsai/bim/module/unit/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddContextDependentUnit, diff --git a/src/bonsai/bonsai/bim/module/unit/data.py b/src/bonsai/bonsai/bim/module/unit/data.py index 22977988bf..fc51ef3710 100644 --- a/src/bonsai/bonsai/bim/module/unit/data.py +++ b/src/bonsai/bonsai/bim/module/unit/data.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . import ifcopenshell -import ifcopenshell.util.unit -import ifcopenshell.util.schema import ifcopenshell.util.attribute +import ifcopenshell.util.schema +import ifcopenshell.util.unit from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/unit/operator.py b/src/bonsai/bonsai/bim/module/unit/operator.py index f7c129aba1..da2c7edc1d 100644 --- a/src/bonsai/bonsai/bim/module/unit/operator.py +++ b/src/bonsai/bonsai/bim/module/unit/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.util.unit -import bonsai.tool as tool + import bonsai.core.unit as core -from typing import TYPE_CHECKING +import bonsai.tool as tool if TYPE_CHECKING: from bpy.stub_internal import rna_enums diff --git a/src/bonsai/bonsai/bim/module/unit/prop.py b/src/bonsai/bonsai/bim/module/unit/prop.py index a335532294..02fe7ac803 100644 --- a/src/bonsai/bonsai/bim/module/unit/prop.py +++ b/src/bonsai/bonsai/bim/module/unit/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.unit.data import UnitsData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +from bonsai.bim.module.unit.data import UnitsData +from bonsai.bim.prop import Attribute, StrProperty def get_unit_classes(self: "BIMUnitProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/unit/ui.py b/src/bonsai/bonsai/bim/module/unit/ui.py index 9407ef01ac..703c43c3d5 100644 --- a/src/bonsai/bonsai/bim/module/unit/ui.py +++ b/src/bonsai/bonsai/bim/module/unit/ui.py @@ -17,13 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.bim.helper -import bonsai.tool as tool + +from typing import TYPE_CHECKING + import bpy from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.unit.data import UnitsData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.unit.prop import BIMUnitProperties, Unit diff --git a/src/bonsai/bonsai/bim/module/void/__init__.py b/src/bonsai/bonsai/bim/module/void/__init__.py index f89d514ad0..1fef345a89 100644 --- a/src/bonsai/bonsai/bim/module/void/__init__.py +++ b/src/bonsai/bonsai/bim/module/void/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddFilling, diff --git a/src/bonsai/bonsai/bim/module/void/data.py b/src/bonsai/bonsai/bim/module/void/data.py index a1999e8d21..6d1fcc12a2 100644 --- a/src/bonsai/bonsai/bim/module/void/data.py +++ b/src/bonsai/bonsai/bim/module/void/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from collections.abc import Generator +from typing import Any, Union + import bpy import ifcopenshell + import bonsai.tool as tool -from typing import Any, Union -from collections.abc import Generator def refresh(): diff --git a/src/bonsai/bonsai/bim/module/void/operator.py b/src/bonsai/bonsai/bim/module/void/operator.py index 0d2136d1d7..8c584e0b14 100644 --- a/src/bonsai/bonsai/bim/module/void/operator.py +++ b/src/bonsai/bonsai/bim/module/void/operator.py @@ -21,10 +21,11 @@ import ifcopenshell.api import ifcopenshell.api.feature import ifcopenshell.util.element import ifcopenshell.util.representation -import bonsai.tool as tool + +import bonsai.bim.handler import bonsai.core.geometry import bonsai.core.root -import bonsai.bim.handler +import bonsai.tool as tool from bonsai.bim.module.model.opening import FilledOpeningGenerator diff --git a/src/bonsai/bonsai/bim/module/void/prop.py b/src/bonsai/bonsai/bim/module/void/prop.py index 0170dbd606..1c6bf088d9 100644 --- a/src/bonsai/bonsai/bim/module/void/prop.py +++ b/src/bonsai/bonsai/bim/module/void/prop.py @@ -16,10 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + IntProperty, + PointerProperty, + StringProperty, +) from bpy.types import PropertyGroup -from bpy.props import PointerProperty, StringProperty, IntProperty, BoolProperty, CollectionProperty, EnumProperty -from typing import Union, TYPE_CHECKING, Literal, get_args OperatorType = Literal["DIFFERENCE", "INTERSECTION", "UNION"] diff --git a/src/bonsai/bonsai/bim/module/void/ui.py b/src/bonsai/bonsai/bim/module/void/ui.py index 8c80adca07..37415eb978 100644 --- a/src/bonsai/bonsai/bim/module/void/ui.py +++ b/src/bonsai/bonsai/bim/module/void/ui.py @@ -17,11 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy -import bonsai.tool as tool from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.module.void.data import BooleansData, VoidsData -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums diff --git a/src/bonsai/bonsai/bim/module/web/__init__.py b/src/bonsai/bonsai/bim/module/web/__init__.py index de3f7015a4..d2d28e0f62 100644 --- a/src/bonsai/bonsai/bim/module/web/__init__.py +++ b/src/bonsai/bonsai/bim/module/web/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ConnectToWebsocketServer, diff --git a/src/bonsai/bonsai/bim/module/web/data.py b/src/bonsai/bonsai/bim/module/web/data.py index db939cadfa..e74b7fa0b6 100644 --- a/src/bonsai/bonsai/bim/module/web/data.py +++ b/src/bonsai/bonsai/bim/module/web/data.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool import os +import bpy + +import bonsai.tool as tool + def refresh(): WebData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/web/operator.py b/src/bonsai/bonsai/bim/module/web/operator.py index 1c8bb21e9b..8efd15494e 100644 --- a/src/bonsai/bonsai/bim/module/web/operator.py +++ b/src/bonsai/bonsai/bim/module/web/operator.py @@ -17,7 +17,9 @@ # along with Bonsai. If not, see . import os + import bpy + import bonsai.core.web as core import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/web/prop.py b/src/bonsai/bonsai/bim/module/web/prop.py index 66ffdd4995..1538454270 100644 --- a/src/bonsai/bonsai/bim/module/web/prop.py +++ b/src/bonsai/bonsai/bim/module/web/prop.py @@ -17,18 +17,19 @@ # along with Bonsai. If not, see . from typing import TYPE_CHECKING + import bpy -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup class WebProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/web/ui.py b/src/bonsai/bonsai/bim/module/web/ui.py index 0a6fca55ae..88bd0e6e6f 100644 --- a/src/bonsai/bonsai/bim/module/web/ui.py +++ b/src/bonsai/bonsai/bim/module/web/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . from bpy.types import Panel + import bonsai.tool as tool from bonsai.bim.module.web.data import WebData diff --git a/src/bonsai/bonsai/bim/operator.py b/src/bonsai/bonsai/bim/operator.py index 3621344542..456d5ed5a0 100644 --- a/src/bonsai/bonsai/bim/operator.py +++ b/src/bonsai/bonsai/bim/operator.py @@ -16,40 +16,43 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os import contextlib -import bpy -import bmesh -import time import logging -import textwrap -import shutil +import os import platform +import shutil import subprocess import tempfile +import textwrap +import time import webbrowser -import ifcopenshell -import bonsai.bim -import bonsai.tool as tool -import bonsai.bim.handler +from collections import namedtuple +from collections.abc import Iterable from enum import Enum -from bpy_extras.io_utils import ImportHelper -from bonsai.bim import import_ifc -from bonsai.bim.prop import StrProperty -from bonsai.bim.ui import IFCFileSelector -from bonsai.bim.helper import get_enum_items -from mathutils import Vector, Euler from math import radians from pathlib import Path -from collections import namedtuple -from typing import Union, TYPE_CHECKING, Literal, get_args -from collections.abc import Iterable +from typing import TYPE_CHECKING, Literal, Union, get_args + +import bmesh +import bpy +import ifcopenshell +from bpy_extras.io_utils import ImportHelper +from mathutils import Euler, Vector from natsort import natsorted +import bonsai.bim +import bonsai.bim.handler +import bonsai.tool as tool +from bonsai.bim import import_ifc +from bonsai.bim.helper import get_enum_items +from bonsai.bim.prop import StrProperty +from bonsai.bim.ui import IFCFileSelector + if TYPE_CHECKING: - from bonsai.bim.prop import MultipleFileSelect, Attribute from bpy.stub_internal import rna_enums + from bonsai.bim.prop import Attribute, MultipleFileSelect + class SetTab(bpy.types.Operator): bl_idname = "bim.set_tab" diff --git a/src/bonsai/bonsai/bim/prop.py b/src/bonsai/bonsai/bim/prop.py index 2adbfab5d6..8e6b8ed7c8 100644 --- a/src/bonsai/bonsai/bim/prop.py +++ b/src/bonsai/bonsai/bim/prop.py @@ -16,35 +16,37 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json +import os +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.util.pset import ifcopenshell.util.unit -from ifcopenshell.util.doc import ( - get_entity_doc, - get_attribute_doc, - get_property_set_doc, - get_property_doc, - get_predefined_type_doc, -) -import bonsai.bim -import bonsai.bim.schema -import bonsai.bim.handler -import bonsai.tool as tool -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import Any, Union, Literal, get_args, TYPE_CHECKING, assert_never +from bpy.types import PropertyGroup +from ifcopenshell.util.doc import ( + get_attribute_doc, + get_entity_doc, + get_predefined_type_doc, + get_property_doc, + get_property_set_doc, +) + +import bonsai.bim +import bonsai.bim.handler +import bonsai.bim.schema +import bonsai.tool as tool cwd = os.path.dirname(os.path.realpath(__file__)) diff --git a/src/bonsai/bonsai/bim/schema.py b/src/bonsai/bonsai/bim/schema.py index 7890f90006..4ef96e72a7 100644 --- a/src/bonsai/bonsai/bim/schema.py +++ b/src/bonsai/bonsai/bim/schema.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + +import bpy import ifcopenshell import ifcopenshell.util.pset + import bonsai.tool as tool -import bpy -from typing import TYPE_CHECKING if TYPE_CHECKING or bpy.app.version >= (5, 0, 0): import _bpy_restrict_state as bpy_restrict_state diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index 81eb4c45d0..f90d2165fb 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -17,49 +17,51 @@ # along with Bonsai. If not, see . import os -import bpy import platform -import platformdirs -import bonsai.bim.helper +import textwrap from pathlib import Path +from typing import TYPE_CHECKING, Literal, Optional + +import bpy +import platformdirs +from bpy.props import BoolProperty, IntProperty, StringProperty from bpy.types import Panel -from bpy.props import StringProperty, IntProperty, BoolProperty from ifcopenshell.util.doc import ( + get_attribute_doc, get_entity_doc, get_property_set_doc, get_type_doc, - get_attribute_doc, ) -from . import ifc -from bonsai import get_debug_info -import bonsai.bim -import bonsai.tool as tool from ifcopenshell.util.file import IfcHeaderExtractor -from bonsai.bim.prop import Attribute +from natsort import natsorted + +import bonsai.bim +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai import get_debug_info from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDProperty -from bonsai.bim.module.pset.prop import IfcProperty from bonsai.bim.module.model.prop import ( BIMDoorProperties, - BIMWindowProperties, BIMRailingProperties, BIMRoofProperties, BIMStairProperties, + BIMWindowProperties, ) from bonsai.bim.module.model.ui import ( draw_door_properties, - draw_window_properties, draw_railing_properties, draw_roof_properties, draw_stair_properties, + draw_window_properties, ) -from typing import Optional, TYPE_CHECKING, Literal -from natsort import natsorted -import textwrap +from bonsai.bim.module.pset.prop import IfcProperty +from bonsai.bim.prop import Attribute +from . import ifc if TYPE_CHECKING: - from bonsai.bim.prop import ObjProperty from bonsai.bim.module.project.prop import BIMProjectProperties + from bonsai.bim.prop import ObjProperty class IFCFileSelector: diff --git a/src/bonsai/bonsai/core/aggregate.py b/src/bonsai/bonsai/core/aggregate.py index a1f2723338..0b6719a180 100644 --- a/src/bonsai/bonsai/core/aggregate.py +++ b/src/bonsai/bonsai/core/aggregate.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/attribute.py b/src/bonsai/bonsai/core/attribute.py index fd41beda7a..2bc2340cd8 100644 --- a/src/bonsai/bonsai/core/attribute.py +++ b/src/bonsai/bonsai/core/attribute.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/brick.py b/src/bonsai/bonsai/core/brick.py index b285377d86..a21c6d0656 100644 --- a/src/bonsai/bonsai/core/brick.py +++ b/src/bonsai/bonsai/core/brick.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/bsdd.py b/src/bonsai/bonsai/core/bsdd.py index 3bb4513d40..1cbf610ea7 100644 --- a/src/bonsai/bonsai/core/bsdd.py +++ b/src/bonsai/bonsai/core/bsdd.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Any + +from typing import TYPE_CHECKING, Any, Optional if TYPE_CHECKING: import bpy - import ifcopenshell import bsdd + import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/context.py b/src/bonsai/bonsai/core/context.py index 626720fb33..49815881aa 100644 --- a/src/bonsai/bonsai/core/context.py +++ b/src/bonsai/bonsai/core/context.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/cost.py b/src/bonsai/bonsai/core/cost.py index fe55d3c31c..6cd2d916c3 100644 --- a/src/bonsai/bonsai/core/cost.py +++ b/src/bonsai/bonsai/core/cost.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union, Literal + +from typing import TYPE_CHECKING, Literal, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell import ifcopenshell.util.cost + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/covering.py b/src/bonsai/bonsai/core/covering.py index ffc140dac6..c308c861fc 100644 --- a/src/bonsai/bonsai/core/covering.py +++ b/src/bonsai/bonsai/core/covering.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/debug.py b/src/bonsai/bonsai/core/debug.py index 2446a6e148..b79bd4f0e7 100644 --- a/src/bonsai/bonsai/core/debug.py +++ b/src/bonsai/bonsai/core/debug.py @@ -18,11 +18,13 @@ from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/document.py b/src/bonsai/bonsai/core/document.py index ac49fee10d..e38fc5d1e1 100644 --- a/src/bonsai/bonsai/core/document.py +++ b/src/bonsai/bonsai/core/document.py @@ -17,10 +17,12 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/drawing.py b/src/bonsai/bonsai/core/drawing.py index 6ce74fe394..b56b51751f 100644 --- a/src/bonsai/bonsai/core/drawing.py +++ b/src/bonsai/bonsai/core/drawing.py @@ -17,13 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + from pathlib import Path -from typing import TYPE_CHECKING, Optional, Union, Literal +from typing import TYPE_CHECKING, Literal, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell import ifcopenshell.util.representation + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/geometry.py b/src/bonsai/bonsai/core/geometry.py index 99512f75b8..83ba921d30 100644 --- a/src/bonsai/bonsai/core/geometry.py +++ b/src/bonsai/bonsai/core/geometry.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union + from collections.abc import Sequence +from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/georeference.py b/src/bonsai/bonsai/core/georeference.py index 419f4218ba..e74b5f577d 100644 --- a/src/bonsai/bonsai/core/georeference.py +++ b/src/bonsai/bonsai/core/georeference.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/ifcgit.py b/src/bonsai/bonsai/core/ifcgit.py index f3a2ead14a..703013e266 100644 --- a/src/bonsai/bonsai/core/ifcgit.py +++ b/src/bonsai/bonsai/core/ifcgit.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + import platform from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy - import ifcopenshell - import bonsai.tool as tool import git + import ifcopenshell + + import bonsai.tool as tool def create_repo(ifcgit: type[tool.IfcGit], ifc: type[tool.Ifc]) -> None: diff --git a/src/bonsai/bonsai/core/library.py b/src/bonsai/bonsai/core/library.py index 53f5f8ce8c..e6c58bf0f7 100644 --- a/src/bonsai/bonsai/core/library.py +++ b/src/bonsai/bonsai/core/library.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/material.py b/src/bonsai/bonsai/core/material.py index 25a1df3e89..65c5955603 100644 --- a/src/bonsai/bonsai/core/material.py +++ b/src/bonsai/bonsai/core/material.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/misc.py b/src/bonsai/bonsai/core/misc.py index a69ffb2180..297b81eac8 100644 --- a/src/bonsai/bonsai/core/misc.py +++ b/src/bonsai/bonsai/core/misc.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/model.py b/src/bonsai/bonsai/core/model.py index c82de50e0e..6edce4d100 100644 --- a/src/bonsai/bonsai/core/model.py +++ b/src/bonsai/bonsai/core/model.py @@ -17,15 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Literal + +from typing import TYPE_CHECKING, Literal, Optional if TYPE_CHECKING: import bpy import ifcopenshell - import bonsai.tool as tool - from mathutils import Vector - from bonsai.bim.module.model.wall import DumbWallJoiner, DumbWallAligner + + import bonsai.tool as tool + from bonsai.bim.module.model.wall import DumbWallAligner, DumbWallJoiner AlignType = Literal["CENTER", "EXTERIOR", "INTERIOR"] OffsetType = Literal["CENTER", "EXTERIOR", "INTERIOR"] diff --git a/src/bonsai/bonsai/core/nest.py b/src/bonsai/bonsai/core/nest.py index 645efa0eb6..4ab491666b 100644 --- a/src/bonsai/bonsai/core/nest.py +++ b/src/bonsai/bonsai/core/nest.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/owner.py b/src/bonsai/bonsai/core/owner.py index f2dd366138..90383e7885 100644 --- a/src/bonsai/bonsai/core/owner.py +++ b/src/bonsai/bonsai/core/owner.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell - import bonsai.tool as tool - from ifcopenshell.api.owner.add_address import ADDRESS_TYPE from ifcopenshell.api.owner.add_actor import ACTOR_TYPE + from ifcopenshell.api.owner.add_address import ADDRESS_TYPE + + import bonsai.tool as tool def add_person(ifc: type[tool.Ifc]) -> ifcopenshell.entity_instance: diff --git a/src/bonsai/bonsai/core/patch.py b/src/bonsai/bonsai/core/patch.py index a715f11f74..4acee34494 100644 --- a/src/bonsai/bonsai/core/patch.py +++ b/src/bonsai/bonsai/core/patch.py @@ -18,11 +18,13 @@ from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/profile.py b/src/bonsai/bonsai/core/profile.py index 46e179229c..e102360062 100644 --- a/src/bonsai/bonsai/core/profile.py +++ b/src/bonsai/bonsai/core/profile.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/project.py b/src/bonsai/bonsai/core/project.py index f699c8bfe9..18dbd3fab2 100644 --- a/src/bonsai/bonsai/core/project.py +++ b/src/bonsai/bonsai/core/project.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/pset.py b/src/bonsai/bonsai/core/pset.py index 6a92f3d400..6af9f1e1ee 100644 --- a/src/bonsai/bonsai/core/pset.py +++ b/src/bonsai/bonsai/core/pset.py @@ -18,11 +18,13 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union, Any + +from typing import TYPE_CHECKING, Any, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/qto.py b/src/bonsai/bonsai/core/qto.py index d56130962b..40a866ac33 100644 --- a/src/bonsai/bonsai/core/qto.py +++ b/src/bonsai/bonsai/core/qto.py @@ -17,10 +17,12 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING if TYPE_CHECKING: import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/resource.py b/src/bonsai/bonsai/core/resource.py index a3423c98db..cab03b7ebc 100644 --- a/src/bonsai/bonsai/core/resource.py +++ b/src/bonsai/bonsai/core/resource.py @@ -19,12 +19,14 @@ # ############################################################################ # from __future__ import annotations -from typing import TYPE_CHECKING, Optional + from collections.abc import Iterable +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/root.py b/src/bonsai/bonsai/core/root.py index b8f960247c..3a283a6a65 100644 --- a/src/bonsai/bonsai/core/root.py +++ b/src/bonsai/bonsai/core/root.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional + import ifcopenshell.util.element if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/search.py b/src/bonsai/bonsai/core/search.py index 5e9d279df9..cc16fb56f6 100644 --- a/src/bonsai/bonsai/core/search.py +++ b/src/bonsai/bonsai/core/search.py @@ -17,10 +17,12 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING if TYPE_CHECKING: import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/sequence.py b/src/bonsai/bonsai/core/sequence.py index 610c7095b6..d62b4325ad 100644 --- a/src/bonsai/bonsai/core/sequence.py +++ b/src/bonsai/bonsai/core/sequence.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/spatial.py b/src/bonsai/bonsai/core/spatial.py index 16e11e0fa9..4207d033d4 100644 --- a/src/bonsai/bonsai/core/spatial.py +++ b/src/bonsai/bonsai/core/spatial.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union, assert_never if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/structural.py b/src/bonsai/bonsai/core/structural.py index 4c31883fe5..c3f787905a 100644 --- a/src/bonsai/bonsai/core/structural.py +++ b/src/bonsai/bonsai/core/structural.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/style.py b/src/bonsai/bonsai/core/style.py index 85bb4200aa..20fd98509c 100644 --- a/src/bonsai/bonsai/core/style.py +++ b/src/bonsai/bonsai/core/style.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Any + +from typing import TYPE_CHECKING, Any, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/system.py b/src/bonsai/bonsai/core/system.py index 01f1b7166e..418c472645 100644 --- a/src/bonsai/bonsai/core/system.py +++ b/src/bonsai/bonsai/core/system.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/type.py b/src/bonsai/bonsai/core/type.py index 226f00c461..2467f124d3 100644 --- a/src/bonsai/bonsai/core/type.py +++ b/src/bonsai/bonsai/core/type.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.core.geometry + from typing import TYPE_CHECKING, Optional +import bonsai.core.geometry + if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/unit.py b/src/bonsai/bonsai/core/unit.py index a8325f9d89..863821e6f5 100644 --- a/src/bonsai/bonsai/core/unit.py +++ b/src/bonsai/bonsai/core/unit.py @@ -18,11 +18,13 @@ from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/web.py b/src/bonsai/bonsai/core/web.py index 187d479b6b..b0d9222460 100644 --- a/src/bonsai/bonsai/core/web.py +++ b/src/bonsai/bonsai/core/web.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/tool/__init__.py b/src/bonsai/bonsai/tool/__init__.py index 8dae934981..68fbf0e381 100644 --- a/src/bonsai/bonsai/tool/__init__.py +++ b/src/bonsai/bonsai/tool/__init__.py @@ -39,8 +39,7 @@ from bonsai.tool.geometry import Geometry from bonsai.tool.georeference import Georeference from bonsai.tool.group import Group from bonsai.tool.ifc import Ifc -from bonsai.tool.ifcgit import IfcGit -from bonsai.tool.ifcgit import IfcGitRepo +from bonsai.tool.ifcgit import IfcGit, IfcGitRepo from bonsai.tool.layer import Layer from bonsai.tool.library import Library from bonsai.tool.loader import Loader diff --git a/src/bonsai/bonsai/tool/aggregate.py b/src/bonsai/bonsai/tool/aggregate.py index db037c2b02..43b155a5aa 100644 --- a/src/bonsai/bonsai/tool/aggregate.py +++ b/src/bonsai/bonsai/tool/aggregate.py @@ -17,15 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Literal, Union + import bpy -import bonsai.core.tool -import bonsai.tool as tool import ifcopenshell.util.element import ifcopenshell.util.representation -from typing import Union, TYPE_CHECKING, Literal + +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.module.aggregate.prop import BIMAggregateProperties, BIMObjectAggregateProperties + from bonsai.bim.module.aggregate.prop import ( + BIMAggregateProperties, + BIMObjectAggregateProperties, + ) class Aggregate(bonsai.core.tool.Aggregate): diff --git a/src/bonsai/bonsai/tool/attribute.py b/src/bonsai/bonsai/tool/attribute.py index 0515edc04c..426283ac9e 100644 --- a/src/bonsai/bonsai/tool/attribute.py +++ b/src/bonsai/bonsai/tool/attribute.py @@ -17,23 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.core.tool -import bonsai.bim.helper as helper -import bonsai.tool as tool -import ifcopenshell + from typing import ( - Any, - Optional, - Union, - Literal, - TypeVar, TYPE_CHECKING, + Any, + Literal, + Optional, + TypeVar, + Union, assert_never, ) +import bpy +import ifcopenshell + +import bonsai.bim.helper as helper +import bonsai.core.tool +import bonsai.tool as tool + if TYPE_CHECKING: - from bonsai.bim.module.attribute.prop import BIMAttributeProperties, BIMExplorerProperties + from bonsai.bim.module.attribute.prop import ( + BIMAttributeProperties, + BIMExplorerProperties, + ) T = TypeVar("T") diff --git a/src/bonsai/bonsai/tool/bcf.py b/src/bonsai/bonsai/tool/bcf.py index b67a5a98db..c98cfeb4e0 100644 --- a/src/bonsai/bonsai/tool/bcf.py +++ b/src/bonsai/bonsai/tool/bcf.py @@ -17,23 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bcf.v2.visinfo -import bonsai.core.tool -import bonsai.tool as tool -import bpy -import bcf.v2.model -import bcf.v2.model.visinfo -import bcf.v2.topic -import bcf.v3.model -import bcf.v3.model.visinfo -import bcf.v3.topic +from typing import TYPE_CHECKING, Any, Optional, TypeGuard, TypeVar, Union import bcf.agnostic.model import bcf.agnostic.topic import bcf.agnostic.visinfo +import bcf.v2.model +import bcf.v2.model.visinfo +import bcf.v2.topic +import bcf.v2.visinfo +import bcf.v3.model +import bcf.v3.model.visinfo +import bcf.v3.topic +import bpy -from typing import Any, Union, TypeVar, TypeGuard, Optional, TYPE_CHECKING +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.bcf.prop import BCFProperties diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index 56e78d5c4f..d4491e104a 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -17,53 +17,63 @@ # along with Bonsai. If not, see . from __future__ import annotations -import sys -import bpy -import bmesh + +import contextlib +import importlib import json import os import platform import subprocess -import contextlib +import sys import tempfile import traceback +import types +from collections.abc import Callable, Generator, Iterable, Sequence, Sized +from datetime import datetime +from functools import cache, lru_cache +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, + Literal, + Optional, + TypeVar, + Union, + assert_never, +) + +import bmesh +import bpy +import ifcopenshell.api +import ifcopenshell.util.element import numpy as np import numpy.typing as npt from ifcopenshell import entity_instance -import ifcopenshell.api -import ifcopenshell.util.element +from mathutils import Vector + +import bonsai.bim import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim -import types -import importlib -from datetime import datetime -from mathutils import Vector -from pathlib import Path -from functools import lru_cache, cache from bonsai.bim.ifc import IFC_CONNECTED_TYPE -from typing import ( - Any, - Optional, - Union, - Literal, - TypeVar, - TYPE_CHECKING, - assert_never, -) -from collections.abc import Iterable, Callable, Generator, Sequence, Sized if TYPE_CHECKING: - from sun_position.properties import SunPosProperties import bpy.stub_internal.rna_enums as rna_enums - from bonsai.bim.prop import BIMProperties, BIMObjectProperties, BIMSnapProperties + from sun_position.properties import SunPosProperties + from bonsai.bim.module.attribute.prop import BIMAttributeProperties - from bonsai.bim.module.constraint.prop import BIMConstraintProperties, BIMObjectConstraintProperties + from bonsai.bim.module.constraint.prop import ( + BIMConstraintProperties, + BIMObjectConstraintProperties, + ) from bonsai.bim.module.covetool.prop import CoveToolProperties from bonsai.bim.module.csv.prop import CsvProperties from bonsai.bim.module.diff.prop import DiffProperties from bonsai.bim.module.fm.prop import BIMFMProperties - from bonsai.bim.module.light.prop import BIMSolarProperties, RadianceExporterProperties + from bonsai.bim.module.light.prop import ( + BIMSolarProperties, + RadianceExporterProperties, + ) + from bonsai.bim.prop import BIMObjectProperties, BIMProperties, BIMSnapProperties T = TypeVar("T") @@ -1349,11 +1359,11 @@ class Blender(bonsai.core.tool.Blender): @classmethod def register_toolbar(cls): - import bonsai.bim.module.model.workspace as ws_model + import bonsai.bim.module.covering.workspace as ws_covering import bonsai.bim.module.drawing.workspace as ws_drawing + import bonsai.bim.module.model.workspace as ws_model import bonsai.bim.module.spatial.workspace as ws_spatial import bonsai.bim.module.structural.workspace as ws_structural - import bonsai.bim.module.covering.workspace as ws_covering if bpy.app.background: return @@ -1381,11 +1391,11 @@ class Blender(bonsai.core.tool.Blender): @classmethod def unregister_toolbar(cls): - import bonsai.bim.module.model.workspace as ws_model + import bonsai.bim.module.covering.workspace as ws_covering import bonsai.bim.module.drawing.workspace as ws_drawing + import bonsai.bim.module.model.workspace as ws_model import bonsai.bim.module.spatial.workspace as ws_spatial import bonsai.bim.module.structural.workspace as ws_structural - import bonsai.bim.module.covering.workspace as ws_covering if bpy.app.background: return @@ -1763,8 +1773,8 @@ class Blender(bonsai.core.tool.Blender): @classmethod @lru_cache def get_list_of_tools(cls) -> tuple[str, ...]: - from bonsai.bim.module.model.workspace import BimTool from bonsai.bim.module.drawing.workspace import AnnotationTool + from bonsai.bim.module.model.workspace import BimTool return tuple(cls.bl_idname for cls in (BimTool.__subclasses__() + [BimTool, AnnotationTool])) diff --git a/src/bonsai/bonsai/tool/boundary.py b/src/bonsai/bonsai/tool/boundary.py index d09ebcbee1..16662919aa 100644 --- a/src/bonsai/bonsai/tool/boundary.py +++ b/src/bonsai/bonsai/tool/boundary.py @@ -17,16 +17,22 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections.abc import Sequence +from typing import TYPE_CHECKING, Any + import bpy import mathutils +from mathutils import Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool -from mathutils import Matrix, Vector -from typing import Any, TYPE_CHECKING -from collections.abc import Sequence if TYPE_CHECKING: - from bonsai.bim.module.boundary.prop import BIMBoundaryProperties, BIMObjectBoundaryProperties + from bonsai.bim.module.boundary.prop import ( + BIMBoundaryProperties, + BIMObjectBoundaryProperties, + ) class Boundary(bonsai.core.tool.Boundary): diff --git a/src/bonsai/bonsai/tool/brick.py b/src/bonsai/bonsai/tool/brick.py index 9da53f4413..42b80cc288 100644 --- a/src/bonsai/bonsai/tool/brick.py +++ b/src/bonsai/bonsai/tool/brick.py @@ -17,28 +17,32 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import datetime +import os +from collections.abc import Generator +from contextlib import contextmanager +from pathlib import Path +from typing import TYPE_CHECKING, Any, Union + +import bpy import ifcopenshell import ifcopenshell.guid import ifcopenshell.util.brick import ifcopenshell.util.element import ifcopenshell.util.system + import bonsai.core.brick import bonsai.core.tool import bonsai.tool as tool -from pathlib import Path -from contextlib import contextmanager -from typing import Any, Union, TYPE_CHECKING -from collections.abc import Generator try: + import urllib.parse + import brickschema import brickschema.persistent from brickschema.namespaces import REF, A - import urllib.parse - from rdflib import Literal, URIRef, Namespace, BNode + from rdflib import BNode, Literal, Namespace, URIRef from rdflib.namespace import RDF except: # See #1860 @@ -46,7 +50,8 @@ except: if TYPE_CHECKING: import brickschema - from rdflib import Literal, URIRef, Namespace, BNode + from rdflib import BNode, Literal, Namespace, URIRef + from bonsai.bim.module.brick.prop import BIMBrickProperties # silence known rdflib_sqlalchemy TypeError warning diff --git a/src/bonsai/bonsai/tool/bsdd.py b/src/bonsai/bonsai/tool/bsdd.py index 337cf626c9..dc42708867 100644 --- a/src/bonsai/bonsai/tool/bsdd.py +++ b/src/bonsai/bonsai/tool/bsdd.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.core.tool -import bonsai.tool as tool -import bpy + import json +from typing import TYPE_CHECKING, Any, TypedDict, Union + +import bpy import bsdd import ifcopenshell.api.library -import ifcopenshell.util.type -import ifcopenshell.util.element import ifcopenshell.util.classification -from typing import Any, Union, TYPE_CHECKING, TypedDict +import ifcopenshell.util.element +import ifcopenshell.util.type + +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDDictionary diff --git a/src/bonsai/bonsai/tool/cad.py b/src/bonsai/bonsai/tool/cad.py index 8c65f4babb..4e3d8e1499 100644 --- a/src/bonsai/bonsai/tool/cad.py +++ b/src/bonsai/bonsai/tool/cad.py @@ -29,16 +29,18 @@ # - You can now derive the center from an arc without generating geometry from __future__ import annotations -import sys -import bpy -import math -import bmesh -import numpy as np -import mathutils.geometry -from mathutils import Vector, Matrix, geometry + import itertools +import math +import sys from typing import TYPE_CHECKING, Union +import bmesh +import bpy +import mathutils.geometry +import numpy as np +from mathutils import Matrix, Vector, geometry + if TYPE_CHECKING: from bonsai.bim.module.cad.prop import BIMCadProperties diff --git a/src/bonsai/bonsai/tool/clash.py b/src/bonsai/bonsai/tool/clash.py index 17582540e4..7c9961646c 100644 --- a/src/bonsai/bonsai/tool/clash.py +++ b/src/bonsai/bonsai/tool/clash.py @@ -17,17 +17,20 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import json -import ifcopenshell -import bonsai.core.tool -import bonsai.tool as tool +import os from contextlib import contextmanager -from mathutils import Vector +from typing import TYPE_CHECKING, Literal, Union, get_args + +import bpy +import ifcopenshell from ifcclash import ifcclash from ifcclash.ifcclash import ClashSource -from typing import TYPE_CHECKING, Union, Literal, get_args +from mathutils import Vector + +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.clash.prop import BIMClashProperties diff --git a/src/bonsai/bonsai/tool/classification.py b/src/bonsai/bonsai/tool/classification.py index 3535e0a12f..7b2ebb073e 100644 --- a/src/bonsai/bonsai/tool/classification.py +++ b/src/bonsai/bonsai/tool/classification.py @@ -17,15 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union, assert_never + import bpy import ifcopenshell.api import ifcopenshell.util.classification + import bonsai.core.tool import bonsai.tool as tool -from typing import Union, assert_never, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.module.classification.prop import BIMClassificationReferenceProperties, BIMClassificationProperties + from bonsai.bim.module.classification.prop import ( + BIMClassificationProperties, + BIMClassificationReferenceProperties, + ) class Classification(bonsai.core.tool.Classification): diff --git a/src/bonsai/bonsai/tool/collector.py b/src/bonsai/bonsai/tool/collector.py index c357287a6b..01c13d6cec 100644 --- a/src/bonsai/bonsai/tool/collector.py +++ b/src/bonsai/bonsai/tool/collector.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Union + import bpy +import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -import ifcopenshell.util.element -from typing import Union class Collector(bonsai.core.tool.Collector): diff --git a/src/bonsai/bonsai/tool/context.py b/src/bonsai/bonsai/tool/context.py index c1582cd37f..50223a6320 100644 --- a/src/bonsai/bonsai/tool/context.py +++ b/src/bonsai/bonsai/tool/context.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Union + import bpy -import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.core.tool import ifcopenshell -from typing import Any, Union, TYPE_CHECKING + +import bonsai.bim.helper +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.context.prop import BIMContextProperties + from bonsai.bim.prop import Attribute class Context(bonsai.core.tool.Context): diff --git a/src/bonsai/bonsai/tool/cost.py b/src/bonsai/bonsai/tool/cost.py index d1ee2a841c..771b15f43e 100644 --- a/src/bonsai/bonsai/tool/cost.py +++ b/src/bonsai/bonsai/tool/cost.py @@ -17,26 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json +from collections.abc import Generator +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, assert_never + import bpy -import bonsai.core.tool -import bonsai.tool as tool import ifcopenshell.api import ifcopenshell.api.cost import ifcopenshell.api.document import ifcopenshell.api.nest -import ifcopenshell.util.element -import ifcopenshell.util.date import ifcopenshell.util.cost +import ifcopenshell.util.date +import ifcopenshell.util.element import ifcopenshell.util.unit + import bonsai.bim.helper -import json -from pathlib import Path -from typing import Optional, Any, Union, Literal, TYPE_CHECKING, assert_never -from collections.abc import Generator +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.cost.prop import BIMCostProperties, CostItemQuantity + from bonsai.bim.prop import Attribute class Cost(bonsai.core.tool.Cost): @@ -581,9 +584,10 @@ class Cost(bonsai.core.tool.Cost): ) -> ifcopenshell.entity_instance: if not file_path: return - from ifc5d.csv2ifc import Csv2Ifc import time + from ifc5d.csv2ifc import Csv2Ifc + start = time.time() resolved_path = tool.Ifc.resolve_uri(file_path) @@ -804,8 +808,8 @@ class Cost(bonsai.core.tool.Cost): format: Literal["CSV", "ODS", "XLSX"], cost_schedule: Optional[ifcopenshell.entity_instance] = None, ) -> Union[str, None]: - import subprocess import os + import subprocess import sys if dirpath: diff --git a/src/bonsai/bonsai/tool/covering.py b/src/bonsai/bonsai/tool/covering.py index c83a6f3e09..018a39eb46 100644 --- a/src/bonsai/bonsai/tool/covering.py +++ b/src/bonsai/bonsai/tool/covering.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy import ifcopenshell import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.covering.prop import BIMCoveringProperties diff --git a/src/bonsai/bonsai/tool/debug.py b/src/bonsai/bonsai/tool/debug.py index 8bd17fa1c1..ccd30ddd74 100644 --- a/src/bonsai/bonsai/tool/debug.py +++ b/src/bonsai/bonsai/tool/debug.py @@ -17,25 +17,28 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json import os import re -import json +from collections import defaultdict +from collections.abc import Iterable +from typing import TYPE_CHECKING, Literal, Union, assert_never + import bmesh import bpy -import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.api.material import ifcopenshell.api.owner import ifcopenshell.express +import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element import ifcopenshell.util.schema +from mathutils import Vector + import bonsai.core.style import bonsai.core.tool import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from mathutils import Vector -from collections import defaultdict -from typing import Literal, TYPE_CHECKING, assert_never, Union -from collections.abc import Iterable if TYPE_CHECKING: from bonsai.bim.module.debug.prop import BIMDebugProperties diff --git a/src/bonsai/bonsai/tool/demo.py b/src/bonsai/bonsai/tool/demo.py index 745fcf914c..98375b3e3b 100644 --- a/src/bonsai/bonsai/tool/demo.py +++ b/src/bonsai/bonsai/tool/demo.py @@ -31,11 +31,13 @@ from __future__ import annotations +from typing import TYPE_CHECKING + import bpy import ifcopenshell + import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.demo.prop import BIMDemoProperties diff --git a/src/bonsai/bonsai/tool/document.py b/src/bonsai/bonsai/tool/document.py index bf8e4d17b8..5d0aaf1a8e 100644 --- a/src/bonsai/bonsai/tool/document.py +++ b/src/bonsai/bonsai/tool/document.py @@ -17,14 +17,17 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json +from typing import TYPE_CHECKING, Any, Union + import bpy import ifcopenshell.util.system +from natsort import natsorted + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -import json -from natsort import natsorted -from typing import Any, Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.document.prop import BIMDocumentProperties diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index 3f1c6de28d..f268151faa 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -17,60 +17,63 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import re + import collections import collections.abc -import bpy -import math import json -import lark -import bmesh -import shutil import logging -import shapely +import math +import os import platform -import mathutils +import re +import shutil import subprocess -import numpy as np -import bonsai.core.tool -import bonsai.core.geometry -import bonsai.core.type -import bonsai.tool as tool +from collections.abc import Iterable, Sequence +from fractions import Fraction +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, NamedTuple, Optional, Union + +import bmesh +import bpy import ifcopenshell.api -import ifcopenshell.api.geometry import ifcopenshell.api.context -import ifcopenshell.api.drawing import ifcopenshell.api.document +import ifcopenshell.api.drawing +import ifcopenshell.api.geometry import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.geom -import ifcopenshell.util.placement -import ifcopenshell.util.unit -import ifcopenshell.util.representation import ifcopenshell.util.element +import ifcopenshell.util.placement +import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.shape +import ifcopenshell.util.unit +import lark +import mathutils +import numpy as np +import shapely +from ifcopenshell.util.shape_builder import ShapeBuilder +from lxml import etree +from mathutils import Matrix, Vector +from shapely.ops import unary_union + import bonsai.bim.helper import bonsai.bim.import_ifc +import bonsai.core.geometry import bonsai.core.root -from shapely.ops import unary_union -from lxml import etree -from mathutils import Vector, Matrix -from fractions import Fraction -from typing import Optional, Union, Any, Literal, TYPE_CHECKING, NamedTuple -from collections.abc import Iterable, Sequence -from pathlib import Path -from ifcopenshell.util.shape_builder import ShapeBuilder +import bonsai.core.tool +import bonsai.core.type +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.drawing.prop import ( + BIMAnnotationProperties, + BIMAssignedProductProperties, + BIMCameraProperties, + BIMTextProperties, DocProperties, Sheet, - BIMAnnotationProperties, - BIMTextProperties, - BIMCameraProperties, - BIMAssignedProductProperties, ) from bonsai.bim.module.drawing.prop import Drawing as DrawingProperties @@ -2793,9 +2796,10 @@ class Drawing(bonsai.core.tool.Drawing): @classmethod def convert_svg_to_dxf(cls, svg_filepath: Path, dxf_filepath: Path) -> None: - import ezdxf import xml.etree.ElementTree as ET + import ezdxf + SVG = "{http://www.w3.org/2000/svg}" IFC = "{http://www.ifcopenshell.org/ns}" diff --git a/src/bonsai/bonsai/tool/feature.py b/src/bonsai/bonsai/tool/feature.py index adc6cd9528..d58a8df55c 100644 --- a/src/bonsai/bonsai/tool/feature.py +++ b/src/bonsai/bonsai/tool/feature.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections.abc import Iterable +from typing import TYPE_CHECKING + import bpy -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.helper -import bonsai.core.geometry import ifcopenshell import ifcopenshell.api.feature import ifcopenshell.util.representation -from typing import TYPE_CHECKING -from collections.abc import Iterable + +import bonsai.bim.helper +import bonsai.core.geometry +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.void.prop import BIMBooleanProperties diff --git a/src/bonsai/bonsai/tool/geometry.py b/src/bonsai/bonsai/tool/geometry.py index 51ff6bfcf3..5a6429adfe 100644 --- a/src/bonsai/bonsai/tool/geometry.py +++ b/src/bonsai/bonsai/tool/geometry.py @@ -17,14 +17,27 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bmesh -import struct + import hashlib import logging -import numpy as np -import numpy.typing as npt import multiprocessing +import struct +from collections import defaultdict +from collections.abc import Generator, Iterable, Iterator +from math import pi, radians +from typing import ( + TYPE_CHECKING, + Any, + Literal, + Optional, + TypeGuard, + Union, + cast, + get_args, +) + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.boundary @@ -45,37 +58,30 @@ import ifcopenshell.util.shape import ifcopenshell.util.shape_builder import ifcopenshell.util.system import ifcopenshell.util.unit -import bonsai.core.tool +import numpy as np +import numpy.typing as npt +from mathutils import Matrix, Vector +from mathutils.bvhtree import BVHTree +from typing_extensions import TypeIs + +import bonsai.bim.helper +import bonsai.bim.import_ifc import bonsai.core.drawing import bonsai.core.geometry import bonsai.core.root import bonsai.core.spatial import bonsai.core.style import bonsai.core.system +import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -import bonsai.bim.import_ifc -from collections import defaultdict -from math import radians, pi -from mathutils import Vector, Matrix -from mathutils.bvhtree import BVHTree from bonsai.bim.ifc import IfcStore -from typing import ( - Union, - Optional, - Literal, - TYPE_CHECKING, - get_args, - cast, - TypeGuard, - Any, -) -from collections.abc import Iterable, Iterator, Generator -from typing_extensions import TypeIs if TYPE_CHECKING: + from bonsai.bim.module.geometry.prop import ( + BIMGeometryProperties, + BIMObjectGeometryProperties, + ) from bonsai.bim.prop import Attribute, BIMMeshProperties - from bonsai.bim.module.geometry.prop import BIMObjectGeometryProperties, BIMGeometryProperties class Geometry(bonsai.core.tool.Geometry): diff --git a/src/bonsai/bonsai/tool/georeference.py b/src/bonsai/bonsai/tool/georeference.py index 7b56adbab2..eefdd12cd9 100644 --- a/src/bonsai/bonsai/tool/georeference.py +++ b/src/bonsai/bonsai/tool/georeference.py @@ -17,22 +17,25 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json -import numpy as np +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell import ifcopenshell.api.georeference import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.unit +import numpy as np + +import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -from typing import Any, Union, Literal, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.georeference.prop import BIMGeoreferenceProperties + from bonsai.bim.prop import Attribute class Georeference(bonsai.core.tool.Georeference): diff --git a/src/bonsai/bonsai/tool/group.py b/src/bonsai/bonsai/tool/group.py index d800904bf8..f0f3664f6f 100644 --- a/src/bonsai/bonsai/tool/group.py +++ b/src/bonsai/bonsai/tool/group.py @@ -17,17 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + import json +from typing import TYPE_CHECKING, Literal, Union, assert_never + import bpy import ifcopenshell +from natsort import natsorted + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING, Literal, assert_never, Union -from natsort import natsorted if TYPE_CHECKING: - from bonsai.bim.module.group.prop import BIMGroupProperties, Group as GroupProp + from bonsai.bim.module.group.prop import BIMGroupProperties + from bonsai.bim.module.group.prop import Group as GroupProp from bonsai.bim.module.system.prop import BIMSystemProperties, System diff --git a/src/bonsai/bonsai/tool/ifc.py b/src/bonsai/bonsai/tool/ifc.py index 9f1c84e6d1..81c5202c19 100644 --- a/src/bonsai/bonsai/tool/ifc.py +++ b/src/bonsai/bonsai/tool/ifc.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations + import os +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, final + import bpy -import numpy as np import ifcopenshell.api import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper import ifcopenshell.util.element import ifcopenshell.util.schema -import bonsai.core.tool +import numpy as np + import bonsai.bim.handler import bonsai.bim.schema +import bonsai.core.tool import bonsai.tool as tool -from pathlib import Path -from bonsai.bim.ifc import IfcStore, IFC_CONNECTED_TYPE -from typing import Optional, Union, Any, final, Literal, TYPE_CHECKING +from bonsai.bim.ifc import IFC_CONNECTED_TYPE, IfcStore if TYPE_CHECKING: from bpy.stub_internal import rna_enums diff --git a/src/bonsai/bonsai/tool/ifcgit.py b/src/bonsai/bonsai/tool/ifcgit.py index 7dfb2431d0..6854b38432 100644 --- a/src/bonsai/bonsai/tool/ifcgit.py +++ b/src/bonsai/bonsai/tool/ifcgit.py @@ -17,17 +17,20 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import logging import os import re import subprocess -import bpy -import logging import tempfile +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy + +import bonsai.tool as tool from bonsai.bim import import_ifc from bonsai.bim.ifc import IfcStore -import bonsai.tool as tool -from pathlib import Path -from typing import TYPE_CHECKING, Union, Literal, Any # allows git import even if git executable isn't found os.environ["GIT_PYTHON_REFRESH"] = "quiet" diff --git a/src/bonsai/bonsai/tool/layer.py b/src/bonsai/bonsai/tool/layer.py index 7b5775d20d..396cc13605 100644 --- a/src/bonsai/bonsai/tool/layer.py +++ b/src/bonsai/bonsai/tool/layer.py @@ -17,10 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy + import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.layer.prop import BIMLayerProperties diff --git a/src/bonsai/bonsai/tool/library.py b/src/bonsai/bonsai/tool/library.py index e16a159b00..861278e91c 100644 --- a/src/bonsai/bonsai/tool/library.py +++ b/src/bonsai/bonsai/tool/library.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations -import ifcopenshell + +from typing import TYPE_CHECKING, Any, Literal, Union + import bpy +import ifcopenshell + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import Literal, Any, Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.library.prop import BIMLibraryProperties diff --git a/src/bonsai/bonsai/tool/loader.py b/src/bonsai/bonsai/tool/loader.py index d5ceea1db5..8fdce1da4c 100644 --- a/src/bonsai/bonsai/tool/loader.py +++ b/src/bonsai/bonsai/tool/loader.py @@ -17,11 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import logging import os import re -import bpy +from math import atan, radians +from pathlib import Path +from typing import Any, Optional, Union, cast + import bmesh -import logging +import bpy import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element @@ -30,17 +35,14 @@ import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape import ifcopenshell.util.unit -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.import_ifc import numpy as np import numpy.typing as npt from ifcopenshell.util.shape_builder import np_to_4d -from math import atan, radians -from mathutils import Vector, Matrix -from pathlib import Path -from typing import Union, Any, Optional, cast +from mathutils import Matrix, Vector +import bonsai.bim.import_ifc +import bonsai.core.tool +import bonsai.tool as tool # Progressively we'll refactor loading elements into Blender objects into this # class. This will break down the monolithic import_ifc module and allow us to @@ -313,6 +315,7 @@ class Loader(bonsai.core.tool.Loader): # https://blender.stackexchange.com/questions/173206/how-to-efficiently-convert-a-pil-image-to-bpy-types-image # https://blender.stackexchange.com/questions/62072/does-blender-have-a-method-to-a-get-png-formatted-bytearray-for-an-image-via-pyt import io + from PIL import Image value = texture["RasterCode"] diff --git a/src/bonsai/bonsai/tool/material.py b/src/bonsai/bonsai/tool/material.py index 5e8b531c5c..6f862100e2 100644 --- a/src/bonsai/bonsai/tool/material.py +++ b/src/bonsai/bonsai/tool/material.py @@ -17,22 +17,28 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections import defaultdict +from typing import TYPE_CHECKING, Any, Optional, Union + import bpy import ifcopenshell import ifcopenshell.api.material -import bonsai.core.tool -import bonsai.core.material -import bonsai.tool as tool -import bonsai.bim.helper -import ifcopenshell.util.unit import ifcopenshell.util.element -from collections import defaultdict -from typing import Union, Any, TYPE_CHECKING, Optional +import ifcopenshell.util.unit + +import bonsai.bim.helper +import bonsai.core.material +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: # Avoid circular imports. + from bonsai.bim.module.material.prop import ( + BIMMaterialProperties, + BIMObjectMaterialProperties, + ) from bonsai.bim.module.material.prop import Material as MaterialItem - from bonsai.bim.module.material.prop import BIMMaterialProperties, BIMObjectMaterialProperties class Material(bonsai.core.tool.Material): diff --git a/src/bonsai/bonsai/tool/misc.py b/src/bonsai/bonsai/tool/misc.py index e2a8028181..890e8aac9b 100644 --- a/src/bonsai/bonsai/tool/misc.py +++ b/src/bonsai/bonsai/tool/misc.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from typing import Union + import bmesh +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.unit -import bonsai.core.tool +from mathutils import Matrix, Vector + import bonsai.core.root +import bonsai.core.tool import bonsai.tool as tool -from mathutils import Vector, Matrix -from typing import Union class Misc(bonsai.core.tool.Misc): diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index 8ecd7c577b..bc6357cb0d 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -17,13 +17,26 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import json -import bmesh -import shapely + import collections import collections.abc -import numpy as np +import json +from collections.abc import Iterable, Sequence +from copy import deepcopy +from math import atan, cos, degrees, pi, radians +from typing import ( + TYPE_CHECKING, + Any, + Literal, + Optional, + TypedDict, + TypeVar, + Union, + assert_never, +) + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -37,38 +50,37 @@ import ifcopenshell.util.representation import ifcopenshell.util.shape import ifcopenshell.util.shape_builder import ifcopenshell.util.unit +import mathutils +import numpy as np +import shapely +from ifcopenshell.util.shape_builder import ShapeBuilder, np_to_3d +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.tool import bonsai.tool as tool -import mathutils -from math import atan, cos, degrees, pi, radians -from mathutils import Matrix, Vector -from copy import deepcopy from bonsai.bim import import_ifc -from ifcopenshell.util.shape_builder import ShapeBuilder, np_to_3d -from typing import Optional, Union, TypeVar, Any, Literal, TYPE_CHECKING, TypedDict, assert_never -from collections.abc import Iterable, Sequence - T = TypeVar("T") V_ = tool.Blender.V_ if TYPE_CHECKING: - import sverchok.node_tree import ifcsverchok.nodes.ifc.shape_builder.shape_output - from bonsai.bim.module.model.prop import ( - BIMModelProperties, - BIMDoorProperties, - BIMArrayProperties, - BIMRoofProperties, - BIMWindowProperties, - BIMStairProperties, - BIMRailingProperties, - BIMExternalParametricGeometryProperties, - BIMPolylineProperties, - ) + import sverchok.node_tree from sverchok.core.node_group import SvGroupTreeNode + from bonsai.bim.module.model.prop import ( + BIMArrayProperties, + BIMDoorProperties, + BIMExternalParametricGeometryProperties, + BIMModelProperties, + BIMPolylineProperties, + BIMRailingProperties, + BIMRoofProperties, + BIMStairProperties, + BIMWindowProperties, + ) + class Model(bonsai.core.tool.Model): @classmethod @@ -1181,6 +1193,7 @@ class Model(bonsai.core.tool.Model): return from PIL import Image, ImageDraw + from bonsai.bim.module.model.data import AuthoringData obj = tool.Ifc.get_object(element) diff --git a/src/bonsai/bonsai/tool/nest.py b/src/bonsai/bonsai/tool/nest.py index 094299c499..a386e402ec 100644 --- a/src/bonsai/bonsai/tool/nest.py +++ b/src/bonsai/bonsai/tool/nest.py @@ -17,11 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union + import bpy +import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -import ifcopenshell.util.element -from typing import TYPE_CHECKING, Union if TYPE_CHECKING: from bonsai.bim.module.nest.prop import BIMNestProperties, BIMObjectNestProperties diff --git a/src/bonsai/bonsai/tool/owner.py b/src/bonsai/bonsai/tool/owner.py index 615fd64db8..9ed0bda219 100644 --- a/src/bonsai/bonsai/tool/owner.py +++ b/src/bonsai/bonsai/tool/owner.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never + import bpy +import ifcopenshell + +import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -import ifcopenshell -from typing import Union, Any, TYPE_CHECKING, Literal, assert_never if TYPE_CHECKING: from bonsai.bim.module.owner.prop import BIMOwnerProperties diff --git a/src/bonsai/bonsai/tool/patch.py b/src/bonsai/bonsai/tool/patch.py index eb2b514173..6ae06b5e10 100644 --- a/src/bonsai/bonsai/tool/patch.py +++ b/src/bonsai/bonsai/tool/patch.py @@ -17,11 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy import ifcopenshell import ifcpatch + import bonsai.core.tool -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.patch.prop import BIMPatchProperties diff --git a/src/bonsai/bonsai/tool/polyline.py b/src/bonsai/bonsai/tool/polyline.py index e8bacd1b4c..b288260d7d 100644 --- a/src/bonsai/bonsai/tool/polyline.py +++ b/src/bonsai/bonsai/tool/polyline.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import math +from dataclasses import dataclass, field +from math import cos, degrees, radians, sin, tan +from typing import Literal, Optional, Union + +import bmesh +import bpy import ifcopenshell import ifcopenshell.util.unit +from lark import Lark, Transformer +from mathutils import Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool from bonsai.bim.module.drawing.helper import format_distance -from dataclasses import dataclass, field -from lark import Lark, Transformer -from math import degrees, radians, sin, cos, tan -from mathutils import Vector, Matrix -from typing import Optional, Union, Literal class Polyline(bonsai.core.tool.Polyline): diff --git a/src/bonsai/bonsai/tool/profile.py b/src/bonsai/bonsai/tool/profile.py index cfb36a06ab..99d2164a32 100644 --- a/src/bonsai/bonsai/tool/profile.py +++ b/src/bonsai/bonsai/tool/profile.py @@ -17,22 +17,25 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell import ifcopenshell.api.profile import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element -import ifcopenshell.util.unit import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape +import ifcopenshell.util.unit import numpy as np +import PIL.ImageDraw + import bonsai.core.tool import bonsai.tool as tool -import PIL.ImageDraw from bonsai.bim.module.model.decorator import ProfileDecorator -from typing import Union, TYPE_CHECKING if TYPE_CHECKING: import bonsai.bim.module.profile.prop diff --git a/src/bonsai/bonsai/tool/project.py b/src/bonsai/bonsai/tool/project.py index 11c4bef3c9..d4df4c80de 100644 --- a/src/bonsai/bonsai/tool/project.py +++ b/src/bonsai/bonsai/tool/project.py @@ -17,27 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations + import os import shutil +from collections import defaultdict +from pathlib import Path +from typing import TYPE_CHECKING, NamedTuple, Optional, Union + import bpy import ifcopenshell import ifcopenshell.api.document import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit +from ifcopenshell.api.project.append_asset import APPENDABLE_ASSET_TYPES + +import bonsai.bim.schema import bonsai.core.aggregate import bonsai.core.context -import bonsai.core.tool -import bonsai.core.root -import bonsai.core.unit import bonsai.core.owner -import bonsai.bim.schema +import bonsai.core.root +import bonsai.core.tool +import bonsai.core.unit import bonsai.tool as tool -from collections import defaultdict from bonsai.bim.ifc import IfcStore -from ifcopenshell.api.project.append_asset import APPENDABLE_ASSET_TYPES -from pathlib import Path -from typing import NamedTuple, Optional, Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.project.prop import BIMProjectProperties, MeasureToolSettings diff --git a/src/bonsai/bonsai/tool/pset.py b/src/bonsai/bonsai/tool/pset.py index b6901238ba..8eabcd155d 100644 --- a/src/bonsai/bonsai/tool/pset.py +++ b/src/bonsai/bonsai/tool/pset.py @@ -17,27 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never + import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.attribute import ifcopenshell.util.element + import bonsai.bim.helper +import bonsai.bim.schema import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.schema -from typing import Union, Literal, Any, TYPE_CHECKING, assert_never - if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.pset.prop import ( - PsetProperties, - GlobalPsetProperties, AddEditPropertyEntry, - RenamePropertyEntry, DeletePsetEntry, + GlobalPsetProperties, + PsetProperties, + RenamePropertyEntry, ) + from bonsai.bim.prop import Attribute class Pset(bonsai.core.tool.Pset): diff --git a/src/bonsai/bonsai/tool/pset_template.py b/src/bonsai/bonsai/tool/pset_template.py index 66a65e820c..e4c1c3dbe1 100644 --- a/src/bonsai/bonsai/tool/pset_template.py +++ b/src/bonsai/bonsai/tool/pset_template.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from pathlib import Path +from typing import TYPE_CHECKING, Literal, final + import bpy import ifcopenshell import ifcopenshell.api.pset_template import ifcopenshell.util.attribute import ifcopenshell.util.element + +import bonsai.bim import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim -from pathlib import Path -from typing import Literal, final, TYPE_CHECKING from bonsai.bim.ifc import IfcStore if TYPE_CHECKING: diff --git a/src/bonsai/bonsai/tool/qto.py b/src/bonsai/bonsai/tool/qto.py index 0efa759335..4fd271b283 100644 --- a/src/bonsai/bonsai/tool/qto.py +++ b/src/bonsai/bonsai/tool/qto.py @@ -17,15 +17,18 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bpy -import bonsai.core.tool -import bonsai.bim.schema -import bonsai.tool as tool import ifcopenshell -import ifcopenshell.util.unit import ifcopenshell.util.element +import ifcopenshell.util.unit from mathutils import Vector -from typing import Optional, Union, Literal, TYPE_CHECKING, Any + +import bonsai.bim.schema +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.qto.prop import BIMQtoProperties diff --git a/src/bonsai/bonsai/tool/raycast.py b/src/bonsai/bonsai/tool/raycast.py index 90bec96644..ee06066dd7 100644 --- a/src/bonsai/bonsai/tool/raycast.py +++ b/src/bonsai/bonsai/tool/raycast.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import copy +from typing import Union + import bmesh import bpy -import copy +import mathutils import numpy as np from bpy_extras import view3d_utils +from mathutils import Vector + import bonsai.core.tool import bonsai.tool as tool -import mathutils -from mathutils import Vector -from typing import Union class Raycast(bonsai.core.tool.Raycast): diff --git a/src/bonsai/bonsai/tool/resource.py b/src/bonsai/bonsai/tool/resource.py index 425dce1a76..c64b7b503b 100644 --- a/src/bonsai/bonsai/tool/resource.py +++ b/src/bonsai/bonsai/tool/resource.py @@ -19,25 +19,31 @@ # ############################################################################ # from __future__ import annotations -import bpy -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.helper + import json import time -import isodate from datetime import datetime +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell.api.pset import ifcopenshell.api.resource -import ifcopenshell.util.date as ifcdateutils -import ifcopenshell.util.cost -import ifcopenshell.util.resource import ifcopenshell.util.constraint -from typing import Any, Union, TYPE_CHECKING, Literal +import ifcopenshell.util.cost +import ifcopenshell.util.date as ifcdateutils +import ifcopenshell.util.resource +import isodate + +import bonsai.bim.helper +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: + from bonsai.bim.module.resource.prop import ( + BIMResourceProductivity, + BIMResourceProperties, + ) from bonsai.bim.prop import Attribute - from bonsai.bim.module.resource.prop import BIMResourceProperties, BIMResourceProductivity class Resource(bonsai.core.tool.Resource): diff --git a/src/bonsai/bonsai/tool/root.py b/src/bonsai/bonsai/tool/root.py index 42bd558bd1..be7e350adc 100644 --- a/src/bonsai/bonsai/tool/root.py +++ b/src/bonsai/bonsai/tool/root.py @@ -17,6 +17,9 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bpy import ifcopenshell import ifcopenshell.api @@ -24,16 +27,16 @@ import ifcopenshell.api.feature import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.api.style -import ifcopenshell.util.representation import ifcopenshell.util.element import ifcopenshell.util.placement -import bonsai.core.tool +import ifcopenshell.util.representation + import bonsai.core.aggregate import bonsai.core.geometry +import bonsai.core.tool import bonsai.tool as tool -from typing import Union, Optional, Any, Literal, TYPE_CHECKING -from bonsai.bim.module.spatial.decorator import GridDecorator from bonsai.bim.module.geometry.decorator import ItemDecorator +from bonsai.bim.module.spatial.decorator import GridDecorator if TYPE_CHECKING: from bonsai.bim.module.root.prop import BIMRootProperties diff --git a/src/bonsai/bonsai/tool/search.py b/src/bonsai/bonsai/tool/search.py index 439e3469b3..ffd3a1aef3 100644 --- a/src/bonsai/bonsai/tool/search.py +++ b/src/bonsai/bonsai/tool/search.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json -import lark -import bonsai.tool as tool -import bonsai.core.tool +from itertools import cycle +from typing import TYPE_CHECKING, Literal, Union + +import bpy import ifcopenshell.guid import ifcopenshell.util.selector -from itertools import cycle +import lark + +import bonsai.core.tool +import bonsai.tool as tool from bonsai.bim.prop import BIMFacet -from typing import Union, Literal, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.prop import BIMFilterGroup from bonsai.bim.module.search.prop import BIMSearchProperties + from bonsai.bim.prop import BIMFilterGroup class Search(bonsai.core.tool.Search): diff --git a/src/bonsai/bonsai/tool/sequence.py b/src/bonsai/bonsai/tool/sequence.py index a2a2cb9668..8c5339d438 100644 --- a/src/bonsai/bonsai/tool/sequence.py +++ b/src/bonsai/bonsai/tool/sequence.py @@ -17,35 +17,37 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import base64 +import json import os import re -import bpy -import json -import base64 -import ifcopenshell.api.sequence -import ifcopenshell.util.element -import pystache -import mathutils import webbrowser -import isodate -import ifcopenshell -import ifcopenshell.api.group -import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.util.date -import ifcopenshell.util.selector -import ifcopenshell.util.sequence -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.helper -from dateutil import parser +from collections.abc import Iterable from datetime import datetime from datetime import time as datetime_time -from typing import Optional, Any, Union, Literal, TYPE_CHECKING -from collections.abc import Iterable +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + +import bpy +import ifcopenshell +import ifcopenshell.api.group +import ifcopenshell.api.sequence +import ifcopenshell.ifcopenshell_wrapper as W +import ifcopenshell.util.date +import ifcopenshell.util.element +import ifcopenshell.util.selector +import ifcopenshell.util.sequence +import isodate +import mathutils +import pystache +from dateutil import parser from mathutils import Color +import bonsai.bim.helper +import bonsai.core.tool +import bonsai.tool as tool + if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.sequence.prop import ( BIMAnimationProperties, BIMStatusProperties, @@ -54,6 +56,7 @@ if TYPE_CHECKING: BIMWorkPlanProperties, BIMWorkScheduleProperties, ) + from bonsai.bim.prop import Attribute class Sequence(bonsai.core.tool.Sequence): diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index 0e6fe06f9e..5c538dfc43 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + +import math +from typing import TYPE_CHECKING, Any, Union + import bmesh +import bpy import ifcopenshell import ifcopenshell.util.unit +import mathutils +from lark import Lark, Transformer +from mathutils import Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool from bonsai.bim.module.drawing.data import DecoratorData from bonsai.bim.module.drawing.decoration import CutDecorator from bonsai.bim.module.model.decorator import PolylineDecorator -import math -import mathutils -from mathutils import Matrix, Vector -from lark import Lark, Transformer -from typing import Union, Any, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.prop import BIMSnapGroups, BIMSnapProperties diff --git a/src/bonsai/bonsai/tool/spatial.py b/src/bonsai/bonsai/tool/spatial.py index a177a237e8..922c6cc9ad 100644 --- a/src/bonsai/bonsai/tool/spatial.py +++ b/src/bonsai/bonsai/tool/spatial.py @@ -17,43 +17,46 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + +import json +from collections import defaultdict +from collections.abc import Generator, Iterable +from math import pi +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bmesh -import shapely -import shapely.ops +import bpy import ifcopenshell import ifcopenshell.api.attribute import ifcopenshell.api.type import ifcopenshell.geom +import ifcopenshell.util.classification import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import ifcopenshell.util.classification import ifcopenshell.util.shape_builder import ifcopenshell.util.type import ifcopenshell.util.unit -import bonsai.core.type -import bonsai.core.tool +import numpy as np +import shapely +import shapely.ops +from mathutils import Matrix, Vector +from natsort import natsorted +from shapely import Polygon + +import bonsai.core.geometry import bonsai.core.root import bonsai.core.spatial -import bonsai.core.geometry +import bonsai.core.tool +import bonsai.core.type import bonsai.core.unit import bonsai.tool as tool -import json -import numpy as np -from math import pi -from mathutils import Vector, Matrix -from shapely import Polygon -from typing import Optional, Union, Literal, Any, TYPE_CHECKING -from collections.abc import Generator, Iterable -from collections import defaultdict -from natsort import natsorted if TYPE_CHECKING: from bonsai.bim.module.spatial.prop import ( BIMGridProperties, - BIMSpatialDecompositionProperties, BIMObjectSpatialProperties, + BIMSpatialDecompositionProperties, ) diff --git a/src/bonsai/bonsai/tool/structural.py b/src/bonsai/bonsai/tool/structural.py index 3f218e52e9..b011f5df88 100644 --- a/src/bonsai/bonsai/tool/structural.py +++ b/src/bonsai/bonsai/tool/structural.py @@ -17,21 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json +from typing import TYPE_CHECKING, Any, Union + import bpy import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.structural import ifcopenshell.util.attribute import ifcopenshell.util.representation -import json + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import Union, Any, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.module.structural.prop import BIMStructuralProperties, BIMObjectStructuralProperties - from ifcopenshell.api.structural.edit_structural_boundary_condition import AttributeDict + from ifcopenshell.api.structural.edit_structural_boundary_condition import ( + AttributeDict, + ) + + from bonsai.bim.module.structural.prop import ( + BIMObjectStructuralProperties, + BIMStructuralProperties, + ) class Structural(bonsai.core.tool.Structural): diff --git a/src/bonsai/bonsai/tool/style.py b/src/bonsai/bonsai/tool/style.py index e6861b53dc..78cb19680e 100644 --- a/src/bonsai/bonsai/tool/style.py +++ b/src/bonsai/bonsai/tool/style.py @@ -17,23 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections.abc import Sequence +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bpy -import numpy as np import ifcopenshell import ifcopenshell.api.style import ifcopenshell.util.element import ifcopenshell.util.representation +import numpy as np +from mathutils import Color + +import bonsai.bim.helper import bonsai.core.style import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -from mathutils import Color -from typing import Union, Any, Optional, Literal, TYPE_CHECKING -from collections.abc import Sequence if TYPE_CHECKING: + from bonsai.bim.module.style.prop import ( + BIMStyleProperties, + BIMStylesProperties, + ColourRgb, + ) from bonsai.bim.prop import Attribute - from bonsai.bim.module.style.prop import BIMStylesProperties, BIMStyleProperties, ColourRgb # fmt: off TEXTURE_MAPS_BY_METHODS = { diff --git a/src/bonsai/bonsai/tool/surveyor.py b/src/bonsai/bonsai/tool/surveyor.py index 7c203586f2..f59d9cd7da 100644 --- a/src/bonsai/bonsai/tool/surveyor.py +++ b/src/bonsai/bonsai/tool/surveyor.py @@ -20,12 +20,13 @@ import bpy import ifcopenshell.api import ifcopenshell.util.geolocation import ifcopenshell.util.unit -import bonsai.core.tool -import bonsai.tool as tool import numpy as np import numpy.typing as npt from mathutils import Matrix +import bonsai.core.tool +import bonsai.tool as tool + class Surveyor(bonsai.core.tool.Surveyor): @classmethod diff --git a/src/bonsai/bonsai/tool/system.py b/src/bonsai/bonsai/tool/system.py index 9df19e5619..8b949a36c9 100644 --- a/src/bonsai/bonsai/tool/system.py +++ b/src/bonsai/bonsai/tool/system.py @@ -17,26 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import re +from enum import Enum +from typing import TYPE_CHECKING, Any, Optional, Union + import bpy import ifcopenshell.api.geometry import ifcopenshell.api.system import ifcopenshell.util.element import ifcopenshell.util.system +from mathutils import Matrix, Vector +from natsort import natsorted + import bonsai.bim.helper import bonsai.core.geometry import bonsai.core.root import bonsai.core.tool import bonsai.tool as tool from bonsai.bim import import_ifc -import re -from mathutils import Matrix, Vector from bonsai.bim.module.system.data import ObjectSystemData, SystemDecorationData -from enum import Enum -from typing import TYPE_CHECKING, Optional, Any, Union -from natsort import natsorted if TYPE_CHECKING: - from bonsai.bim.module.system.prop import BIMSystemProperties, BIMZoneProperties, BIMZoneProperties + from bonsai.bim.module.system.prop import BIMSystemProperties, BIMZoneProperties class System(bonsai.core.tool.System): diff --git a/src/bonsai/bonsai/tool/type.py b/src/bonsai/bonsai/tool/type.py index 43d86d5076..95474e57b7 100644 --- a/src/bonsai/bonsai/tool/type.py +++ b/src/bonsai/bonsai/tool/type.py @@ -17,14 +17,17 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation -import bonsai.core.tool + import bonsai.core.geometry +import bonsai.core.tool import bonsai.tool as tool -from typing import Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.type.prop import BIMTypeProperties diff --git a/src/bonsai/bonsai/tool/unit.py b/src/bonsai/bonsai/tool/unit.py index b98e4fc272..823c50bdc3 100644 --- a/src/bonsai/bonsai/tool/unit.py +++ b/src/bonsai/bonsai/tool/unit.py @@ -17,15 +17,18 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json import math +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never + +import bpy import ifcopenshell +from lark import Lark, Transformer + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from lark import Lark, Transformer -from typing import Union, Literal, Any, TYPE_CHECKING, assert_never if TYPE_CHECKING: from bonsai.bim.module.unit.prop import BIMUnitProperties diff --git a/src/bonsai/bonsai/tool/web.py b/src/bonsai/bonsai/tool/web.py index 2e1628378f..35811b3819 100644 --- a/src/bonsai/bonsai/tool/web.py +++ b/src/bonsai/bonsai/tool/web.py @@ -17,37 +17,40 @@ # along with Bonsai. If not, see . from __future__ import annotations -from ifcopenshell.util.classification import get_classification_data, get_references -from ifcopenshell.util.selector import filter_elements -import ifcopenshell.util.cost + +import asyncio +import errno +import json +import os +import queue +import socket +import subprocess +import sys +import threading +import time +import webbrowser +from pathlib import Path +from time import sleep +from typing import TYPE_CHECKING, Any, Optional, Union + import bpy -from bonsai.bim.module.web.data import WebData -from ifcopenshell.util.element import get_psets, get_type, has_property -import bonsai.core.tool -import bonsai.tool as tool -import ifcopenshell.api.sequence import ifcopenshell.api.classification import ifcopenshell.api.cost -from typing import Any, Optional, TYPE_CHECKING, Union -from mathutils import Color -import time -import socket -import sys -import os -import errno -import subprocess -import webbrowser -import asyncio +import ifcopenshell.api.sequence +import ifcopenshell.util.cost import socketio -import threading -import queue -import json -from time import sleep -from pathlib import Path -import bonsai.core.sequence -import bonsai.core.cost from ifc5d.ifc2json import ifc5D2json +from ifcopenshell.util.classification import get_classification_data, get_references +from ifcopenshell.util.element import get_psets, get_type, has_property +from ifcopenshell.util.selector import filter_elements +from mathutils import Color + +import bonsai.core.cost +import bonsai.core.sequence +import bonsai.core.tool +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.web.data import WebData if TYPE_CHECKING: from bonsai.bim.module.web.prop import WebProperties diff --git a/src/bonsai/pyproject.toml b/src/bonsai/pyproject.toml index 6dab8f3454..3ec2cb8748 100644 --- a/src/bonsai/pyproject.toml +++ b/src/bonsai/pyproject.toml @@ -38,8 +38,3 @@ exclude = ["test*"] [tool.ruff] extend = "../../pyproject.toml" - -[tool.ruff.lint] -ignore = [ - "I", # import sorting - ignore it temporarily, still need to do some tests -] diff --git a/src/bonsai/runpytest.py b/src/bonsai/runpytest.py index f9a55fdc27..9a00ea69b0 100755 --- a/src/bonsai/runpytest.py +++ b/src/bonsai/runpytest.py @@ -23,6 +23,7 @@ Usage: `blender -b -P runpytest.py -- ARGS` """ import sys + import pytest argv = [__file__] diff --git a/src/bonsai/scripts/bonsai_translations.py b/src/bonsai/scripts/bonsai_translations.py index de7f613210..7a0fe86ea9 100644 --- a/src/bonsai/scripts/bonsai_translations.py +++ b/src/bonsai/scripts/bonsai_translations.py @@ -4,20 +4,20 @@ try: # Ensure it's not fake-bpy-module. if not hasattr(bpy, "context"): raise ModuleNotFoundError - import bl_i18n_utils import addon_utils + import bl_i18n_utils BPY_IS_LOADED = True except ModuleNotFoundError: BPY_IS_LOADED = False -import shutil -import tempfile import importlib import os import re -from pathlib import Path +import shutil +import tempfile from dataclasses import dataclass, field +from pathlib import Path from typing import Optional bl_info = { @@ -274,7 +274,9 @@ if BPY_IS_LOADED: f"Couldn't find locale path in the source directory, creating dummy directory: {source_locale_path}.", ) - from ui_translate.settings import settings as ui_translate_settings # pyright: ignore[reportMissingImports] + from ui_translate.settings import ( + settings as ui_translate_settings, # pyright: ignore[reportMissingImports] + ) from ui_translate.update_ui import ( # pyright: ignore[reportMissingImports] UI_OT_i18n_updatetranslation_init_settings, ) diff --git a/src/bonsai/scripts/classifications/uniclass_classification.py b/src/bonsai/scripts/classifications/uniclass_classification.py index ce55fae9e7..299db8a469 100644 --- a/src/bonsai/scripts/classifications/uniclass_classification.py +++ b/src/bonsai/scripts/classifications/uniclass_classification.py @@ -1,4 +1,5 @@ import os + import ifcopenshell import pandas as pd diff --git a/src/bonsai/scripts/classifications/vbis.py b/src/bonsai/scripts/classifications/vbis.py index fe77308f82..7c4f43b967 100644 --- a/src/bonsai/scripts/classifications/vbis.py +++ b/src/bonsai/scripts/classifications/vbis.py @@ -1,12 +1,13 @@ import csv -import os import json +import os # import pystache import subprocess -import ifcopenshell from pathlib import Path +import ifcopenshell + class Generator: def __init__(self): diff --git a/src/bonsai/scripts/classifications/xml_classification.py b/src/bonsai/scripts/classifications/xml_classification.py index d75383a051..0a80fb68e7 100644 --- a/src/bonsai/scripts/classifications/xml_classification.py +++ b/src/bonsai/scripts/classifications/xml_classification.py @@ -1,9 +1,10 @@ """This script converts Graphisoft XML into an IFC file""" +import os import xml.etree.ElementTree as ET + import ifcopenshell import ifcopenshell.guid -import os class IFC4Extractor: diff --git a/src/bonsai/scripts/dev_environment_vscode_config.py b/src/bonsai/scripts/dev_environment_vscode_config.py index b574ba9bf4..088810e05c 100644 --- a/src/bonsai/scripts/dev_environment_vscode_config.py +++ b/src/bonsai/scripts/dev_environment_vscode_config.py @@ -1,6 +1,10 @@ -import bonsai, json, bpy +import json from pathlib import Path +import bpy + +import bonsai + repo_path = Path(bonsai.__file__).resolve().parent install_path = Path(bonsai.__file__).absolute().parent assert repo_path != install_path, "Run `dev_environment.py` to setup the development environment symlinks first." diff --git a/src/bonsai/scripts/dxf2ifc.py b/src/bonsai/scripts/dxf2ifc.py index 3fa34e379a..caef1df864 100644 --- a/src/bonsai/scripts/dxf2ifc.py +++ b/src/bonsai/scripts/dxf2ifc.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import ezdxf import ifcopenshell import ifcopenshell.guid -import ezdxf class Dxf2Ifc: diff --git a/src/bonsai/scripts/extract.py b/src/bonsai/scripts/extract.py index dffaaf6d40..2b4166be81 100644 --- a/src/bonsai/scripts/extract.py +++ b/src/bonsai/scripts/extract.py @@ -16,9 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import xml.sax, json, copy, pathlib -from bs4 import BeautifulSoup # pyright: ignore[reportMissingModuleSource] +import copy +import json +import pathlib import sys +import xml.sax + +from bs4 import BeautifulSoup # pyright: ignore[reportMissingModuleSource] sys.setrecursionlimit(100) diff --git a/src/bonsai/scripts/gbxml.py b/src/bonsai/scripts/gbxml.py index 8d23fe6018..7280c69c2a 100644 --- a/src/bonsai/scripts/gbxml.py +++ b/src/bonsai/scripts/gbxml.py @@ -16,15 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import uuid import math import sys +import uuid + +import bpy +import bspy # pyright: ignore[reportMissingImports] # sys.path.append('C:\Program Files\Python37\Lib\site-packages') import lxml import lxml.etree -import bspy # pyright: ignore[reportMissingImports] from bspy import Gbxml # pyright: ignore[reportMissingImports] diff --git a/src/bonsai/scripts/generate_au_library.py b/src/bonsai/scripts/generate_au_library.py index 044f2fb090..43f05b45da 100644 --- a/src/bonsai/scripts/generate_au_library.py +++ b/src/bonsai/scripts/generate_au_library.py @@ -30,6 +30,7 @@ import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit + import bonsai.tool as tool diff --git a/src/bonsai/scripts/generate_demo_library.py b/src/bonsai/scripts/generate_demo_library.py index 7a9e741dab..a77fc09ab7 100644 --- a/src/bonsai/scripts/generate_demo_library.py +++ b/src/bonsai/scripts/generate_demo_library.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api @@ -31,8 +33,8 @@ import ifcopenshell.api.style import ifcopenshell.api.unit import ifcopenshell.util.schema import ifcopenshell.util.shape_builder + import bonsai.tool as tool -from pathlib import Path def sync_guids(target_file: ifcopenshell.file, source_file: ifcopenshell.file) -> None: diff --git a/src/bonsai/scripts/generate_entourage_library.py b/src/bonsai/scripts/generate_entourage_library.py index 78ed71ac6a..7435186396 100644 --- a/src/bonsai/scripts/generate_entourage_library.py +++ b/src/bonsai/scripts/generate_entourage_library.py @@ -17,6 +17,8 @@ # along with Bonsai. If not, see . import os +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api @@ -26,9 +28,8 @@ import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit -import bonsai.tool as tool -from pathlib import Path +import bonsai.tool as tool # When run from Blender BLEND_DIR = os.path.dirname(bpy.data.filepath) diff --git a/src/bonsai/scripts/generate_furniture_library.py b/src/bonsai/scripts/generate_furniture_library.py index 7212191be9..1c1572c854 100644 --- a/src/bonsai/scripts/generate_furniture_library.py +++ b/src/bonsai/scripts/generate_furniture_library.py @@ -16,7 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import numpy as np +from itertools import chain +from math import cos, pi, tan +from pathlib import Path +from typing import Optional, Union + import ifcopenshell import ifcopenshell.api import ifcopenshell.api.context @@ -27,11 +31,8 @@ import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit import ifcopenshell.util.element -from math import cos, tan, pi -from pathlib import Path -from itertools import chain -from ifcopenshell.util.shape_builder import ShapeBuilder, V, np_to_3d, np_normalized -from typing import Optional, Union +import numpy as np +from ifcopenshell.util.shape_builder import ShapeBuilder, V, np_normalized, np_to_3d GeneratorOutput = Union[list[ifcopenshell.entity_instance], list[list[ifcopenshell.entity_instance]]] diff --git a/src/bonsai/scripts/generate_landscape_library.py b/src/bonsai/scripts/generate_landscape_library.py index 01e694e9d0..34d2366fd5 100644 --- a/src/bonsai/scripts/generate_landscape_library.py +++ b/src/bonsai/scripts/generate_landscape_library.py @@ -16,10 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import csv +import os import random +from collections import namedtuple +from itertools import chain +from math import cos, pi, sin, tan +from pathlib import Path +from random import uniform + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.context @@ -29,15 +35,10 @@ import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit import ifcopenshell.util.unit -import bonsai.tool as tool -from math import cos, sin, tan, pi -from pathlib import Path -from itertools import chain from ifcopenshell.util.shape_builder import ShapeBuilder -from collections import namedtuple -from mathutils import Vector, Matrix -from random import uniform +from mathutils import Matrix, Vector +import bonsai.tool as tool # When run from Blender BLEND_DIR = os.path.dirname(bpy.data.filepath) diff --git a/src/bonsai/scripts/generate_png_icons.py b/src/bonsai/scripts/generate_png_icons.py index d24b69fe90..a523163a20 100644 --- a/src/bonsai/scripts/generate_png_icons.py +++ b/src/bonsai/scripts/generate_png_icons.py @@ -5,9 +5,9 @@ # to run on mac: python3 generate_png_icons.py import os +import re import subprocess import xml.etree.ElementTree as ET -import re SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) SVG_FILE = os.path.join(SCRIPT_DIR, "bonsai_icons.svg") diff --git a/src/bonsai/scripts/generate_site_library.py b/src/bonsai/scripts/generate_site_library.py index e42ad4e4f2..0b0511e9da 100644 --- a/src/bonsai/scripts/generate_site_library.py +++ b/src/bonsai/scripts/generate_site_library.py @@ -25,6 +25,7 @@ import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit + import bonsai.tool as tool diff --git a/src/bonsai/scripts/generate_steel_profiles_library.py b/src/bonsai/scripts/generate_steel_profiles_library.py index 086c918689..c54818df4b 100644 --- a/src/bonsai/scripts/generate_steel_profiles_library.py +++ b/src/bonsai/scripts/generate_steel_profiles_library.py @@ -19,15 +19,16 @@ # fmt: off # pylint: skip-file +from math import cos, pi +from pathlib import Path + +import boltspy as bolts # pyright: ignore[reportMissingImports] import ifcopenshell import ifcopenshell.api import ifcopenshell.api.material import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.unit -import boltspy as bolts # pyright: ignore[reportMissingImports] -from math import cos, pi -from pathlib import Path from ifcopenshell.util.shape_builder import ShapeBuilder, V, ifc_safe_vector_type diff --git a/src/bonsai/scripts/generate_util_type_json.py b/src/bonsai/scripts/generate_util_type_json.py index c162800f54..7c44a9dfe9 100644 --- a/src/bonsai/scripts/generate_util_type_json.py +++ b/src/bonsai/scripts/generate_util_type_json.py @@ -18,6 +18,7 @@ # See bug #1300. Dodgy quick results that we should rebuild later. import json + import ifcopenshell import ifcopenshell.util.schema diff --git a/src/bonsai/scripts/geonodes_modifier_prototype.py b/src/bonsai/scripts/geonodes_modifier_prototype.py index 1b3dbfd8ab..16370c1ca2 100644 --- a/src/bonsai/scripts/geonodes_modifier_prototype.py +++ b/src/bonsai/scripts/geonodes_modifier_prototype.py @@ -17,14 +17,15 @@ # along with Bonsai. If not, see . +import json + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element -import bonsai.tool as tool -import bpy -import bmesh -import json +import bonsai.tool as tool # Below is the code for # prototype for geonodes modifier (similar to ifc sverchok modifier) diff --git a/src/bonsai/scripts/getIfcElements.py b/src/bonsai/scripts/getIfcElements.py index 335260f7e9..57e03d50c4 100644 --- a/src/bonsai/scripts/getIfcElements.py +++ b/src/bonsai/scripts/getIfcElements.py @@ -18,9 +18,9 @@ """This script converts the computer iterpretable listing ifcXML XSD into a JSON file""" -import xml.etree.ElementTree as ET import collections import json +import xml.etree.ElementTree as ET class IFC4Extractor: diff --git a/src/bonsai/scripts/get_all_qtos.py b/src/bonsai/scripts/get_all_qtos.py index 7f23dca55a..d364115559 100644 --- a/src/bonsai/scripts/get_all_qtos.py +++ b/src/bonsai/scripts/get_all_qtos.py @@ -1,13 +1,14 @@ """Update ifc5d json files with qtos from the provided pset templates path.""" import json -import ifcopenshell.util.pset -import ifcopenshell.util.type -import ifc5d from collections import defaultdict from pathlib import Path from typing import Union +import ifc5d +import ifcopenshell.util.pset +import ifcopenshell.util.type + def order_dict(dictionary): # https://stackoverflow.com/questions/22721579/sorting-a-nested-ordereddict-by-key-recursively diff --git a/src/bonsai/scripts/get_description.py b/src/bonsai/scripts/get_description.py index 2d581185aa..a05d5dc287 100644 --- a/src/bonsai/scripts/get_description.py +++ b/src/bonsai/scripts/get_description.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import re import html import json +import os +import re from pathlib import Path + import ifcopenshell diff --git a/src/bonsai/scripts/get_volume_by_material.py b/src/bonsai/scripts/get_volume_by_material.py index 2f81862990..312878e53d 100644 --- a/src/bonsai/scripts/get_volume_by_material.py +++ b/src/bonsai/scripts/get_volume_by_material.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import pprint +import bmesh +import bpy + material_volumes = {} for obj in bpy.context.selected_objects: diff --git a/src/bonsai/scripts/headless_import.py b/src/bonsai/scripts/headless_import.py index 111b07d78b..7554eacc04 100644 --- a/src/bonsai/scripts/headless_import.py +++ b/src/bonsai/scripts/headless_import.py @@ -1,6 +1,7 @@ # This can be run using `blender -b -P headless_import.py` import bpy + import bonsai.tool as tool # When federating, you may wish to manually specify the origin to ensure models diff --git a/src/bonsai/scripts/obj2ifc-meshlab.py b/src/bonsai/scripts/obj2ifc-meshlab.py index 1d2739ca21..c8292bb0f7 100644 --- a/src/bonsai/scripts/obj2ifc-meshlab.py +++ b/src/bonsai/scripts/obj2ifc-meshlab.py @@ -19,21 +19,21 @@ # This can be packaged with `pyinstaller --onefile --hidden-import numpy --collect-all ifcopenshell --clean obj2ifc.py` import argparse -import pymeshlab # pyright: ignore[reportMissingImports] +from pathlib import Path + import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.owner.settings import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.api.unit -import ifcopenshell.api.owner.settings import ifcopenshell.guid -from pathlib import Path - import numpy as np +import pymeshlab # pyright: ignore[reportMissingImports] class Obj2Ifc: diff --git a/src/bonsai/scripts/obj2ifc.py b/src/bonsai/scripts/obj2ifc.py index dc91cedfd5..70f3bf7b41 100644 --- a/src/bonsai/scripts/obj2ifc.py +++ b/src/bonsai/scripts/obj2ifc.py @@ -19,21 +19,21 @@ # This can be packaged with `pyinstaller --onefile --hidden-import numpy --collect-all ifcopenshell --clean obj2ifc.py` import argparse -import pywavefront # pyright: ignore[reportMissingImports] +from pathlib import Path + import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.owner.settings import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.api.unit -import ifcopenshell.api.owner.settings import ifcopenshell.guid -from pathlib import Path - import numpy as np +import pywavefront # pyright: ignore[reportMissingImports] class Obj2Ifc: diff --git a/src/bonsai/scripts/replace_drawing_path.py b/src/bonsai/scripts/replace_drawing_path.py index eeca3911e0..500726082f 100644 --- a/src/bonsai/scripts/replace_drawing_path.py +++ b/src/bonsai/scripts/replace_drawing_path.py @@ -27,15 +27,15 @@ It works on the active ifc file (if exists). """ -import bonsai.tool as tool +import os +import sys +from sys import platform + import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element -import sys - -import os -from sys import platform +import bonsai.tool as tool file = tool.Ifc.get() if not file: diff --git a/src/bonsai/scripts/reregister_bonsai.py b/src/bonsai/scripts/reregister_bonsai.py index 437c9f5b34..ba9ab2ba2a 100644 --- a/src/bonsai/scripts/reregister_bonsai.py +++ b/src/bonsai/scripts/reregister_bonsai.py @@ -25,6 +25,7 @@ to ensure disable and enable occur in the same Blender session. import bpy + import bonsai.tool as tool bonsai_name = tool.Blender.get_blender_addon_package_name() diff --git a/src/bonsai/scripts/setup_pytest.py b/src/bonsai/scripts/setup_pytest.py index 90af113eca..28dc7565f1 100644 --- a/src/bonsai/scripts/setup_pytest.py +++ b/src/bonsai/scripts/setup_pytest.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import sys import subprocess +import sys from pathlib import Path print("Here are the detected system paths:") @@ -45,10 +45,10 @@ for dep in dependencies: subprocess.check_call(command + [dep]) try: + import pygments import pytest import pytest_bdd import pytest_blender - import pygments print("Test dependency installation was successful!") except Exception as e: diff --git a/src/bonsai/scripts/standalone_blender_import.py b/src/bonsai/scripts/standalone_blender_import.py index 27dc84e07f..a2b9908afb 100644 --- a/src/bonsai/scripts/standalone_blender_import.py +++ b/src/bonsai/scripts/standalone_blender_import.py @@ -1,6 +1,7 @@ +import multiprocessing + import ifcopenshell import ifcopenshell.geom -import multiprocessing class BlenderImporter: diff --git a/src/bonsai/scripts/standalone_drawer.py b/src/bonsai/scripts/standalone_drawer.py index 1b669adb3f..3eed11b9c9 100644 --- a/src/bonsai/scripts/standalone_drawer.py +++ b/src/bonsai/scripts/standalone_drawer.py @@ -1,10 +1,11 @@ -import sys -import ifcopenshell -import ifcopenshell.util.element -import ifcopenshell.geom import multiprocessing +import sys from typing import NamedTuple + +import ifcopenshell +import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W +import ifcopenshell.util.element # W.turn_on_detailed_logging() diff --git a/src/bonsai/scripts/standalone_section_shader.py b/src/bonsai/scripts/standalone_section_shader.py index 970e58105b..20afd92fea 100644 --- a/src/bonsai/scripts/standalone_section_shader.py +++ b/src/bonsai/scripts/standalone_section_shader.py @@ -12,20 +12,16 @@ bl_info = { } -import bpy -from bpy.types import Operator, PropertyGroup, Panel -from mathutils import Vector, Matrix, Euler from math import radians + +import bpy from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, - FloatProperty, FloatVectorProperty, - CollectionProperty, + PointerProperty, ) +from bpy.types import Operator, Panel, PropertyGroup +from mathutils import Euler, Vector class SectionCutawayManager: diff --git a/src/bonsai/scripts/waldo.py b/src/bonsai/scripts/waldo.py index 5ed734356c..00243c5782 100644 --- a/src/bonsai/scripts/waldo.py +++ b/src/bonsai/scripts/waldo.py @@ -1,4 +1,8 @@ -import numpy as np +# https://stackoverflow.com/a/9184560/9627415 +# Possible optimisation to linalg.norm? +from itertools import cycle +from math import radians + import ifcopenshell import ifcopenshell.api.aggregate import ifcopenshell.api.context @@ -12,14 +16,7 @@ import ifcopenshell.api.type import ifcopenshell.api.unit import ifcopenshell.util.placement import ifcopenshell.util.shape_builder - -# https://stackoverflow.com/a/9184560/9627415 -# Possible optimisation to linalg.norm? - -# from ifcopenshell.util.shape_builder import VectorType, SequenceOfVectors -from itertools import cycle -from collections import namedtuple -from math import sin, cos, radians +import numpy as np f = ifcopenshell.api.project.create_file() diff --git a/src/bonsai/test/bim/bootstrap.py b/src/bonsai/test/bim/bootstrap.py index 6d997bdd7f..c799c74c00 100644 --- a/src/bonsai/test/bim/bootstrap.py +++ b/src/bonsai/test/bim/bootstrap.py @@ -19,17 +19,19 @@ import os import re -import bpy -import pytest import webbrowser -import bonsai.bim.handler -import bonsai.tool as tool + +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation -from bonsai.bim.ifc import IfcStore +import pytest from mathutils import Vector +import bonsai.bim.handler +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore + # Monkey-patch webbrowser opening since we want to test headlessly webbrowser.open = lambda x: True diff --git a/src/bonsai/test/bim/module/drawing/test_segment_clipping.py b/src/bonsai/test/bim/module/drawing/test_segment_clipping.py index 2a30f6a957..2846a3f2b7 100644 --- a/src/bonsai/test/bim/module/drawing/test_segment_clipping.py +++ b/src/bonsai/test/bim/module/drawing/test_segment_clipping.py @@ -18,8 +18,8 @@ import pytest from mathutils import Vector -from bonsai.bim.module.drawing.helper import clip_segment +from bonsai.bim.module.drawing.helper import clip_segment BOUNDS = (10, 30, 10, 30, None, None) diff --git a/src/bonsai/test/bim/stub.py b/src/bonsai/test/bim/stub.py index a5c498f81e..969cf98cbe 100644 --- a/src/bonsai/test/bim/stub.py +++ b/src/bonsai/test/bim/stub.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . -from typing import Union, Any, Optional +from typing import Any, Optional, Union class bSDDClientStub: diff --git a/src/bonsai/test/bim/test_feature.py b/src/bonsai/test/bim/test_feature.py index 036e0bf464..9df6bbf627 100644 --- a/src/bonsai/test/bim/test_feature.py +++ b/src/bonsai/test/bim/test_feature.py @@ -17,31 +17,34 @@ # along with Bonsai. If not, see . from __future__ import annotations + import os -import types -import bpy -import pytest -import shutil import pprint +import shutil import traceback +import types import webbrowser -import numpy as np -import test.bim.stub +from collections.abc import Generator +from inspect import signature +from math import radians +from pathlib import Path +from typing import Any, Union + +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation -import bonsai.tool as tool -import bonsai.bim.handler -from collections.abc import Generator -from bonsai.bim.ifc import IfcStore -from bonsai.tool.brick import BrickStore -from bonsai.bim.module.model.data import AuthoringData -from pytest_bdd import scenarios, given, when, then, parsers -from inspect import signature +import numpy as np +import pytest from mathutils import Vector -from math import radians -from pathlib import Path -from typing import Union, Any +from pytest_bdd import given, parsers, scenarios, then, when + +import bonsai.bim.handler +import bonsai.tool as tool +import test.bim.stub +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.model.data import AuthoringData +from bonsai.tool.brick import BrickStore scenarios("feature") diff --git a/src/bonsai/test/core/bootstrap.py b/src/bonsai/test/core/bootstrap.py index 837ce67b94..3cf7589420 100644 --- a/src/bonsai/test/core/bootstrap.py +++ b/src/bonsai/test/core/bootstrap.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import sys import json +import sys +from typing import Any, Literal, Optional, Self, TypedDict + import pytest + import bonsai.core.tool -from typing import Any, Optional, TypedDict, Literal, Self @pytest.fixture diff --git a/src/bonsai/test/core/test_aggregate.py b/src/bonsai/test/core/test_aggregate.py index 157b1c3999..4e7babe13a 100644 --- a/src/bonsai/test/core/test_aggregate.py +++ b/src/bonsai/test/core/test_aggregate.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.aggregate as subject -from test.core.bootstrap import ifc, aggregate, collector +from test.core.bootstrap import aggregate, collector, ifc class TestEnableEditingAggregate: diff --git a/src/bonsai/test/core/test_attribute.py b/src/bonsai/test/core/test_attribute.py index aba74e1a4e..d62b832cd9 100644 --- a/src/bonsai/test/core/test_attribute.py +++ b/src/bonsai/test/core/test_attribute.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.attribute as subject -from test.core.bootstrap import ifc, blender, root, spatial +from test.core.bootstrap import blender, ifc, root, spatial class TestCopyAttributeToSelection: diff --git a/src/bonsai/test/core/test_brick.py b/src/bonsai/test/core/test_brick.py index 10a4a7cfd1..c40df06973 100644 --- a/src/bonsai/test/core/test_brick.py +++ b/src/bonsai/test/core/test_brick.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.brick as subject -from test.core.bootstrap import ifc, brick +from test.core.bootstrap import brick, ifc class TestLoadBrickProject: diff --git a/src/bonsai/test/core/test_context.py b/src/bonsai/test/core/test_context.py index 7388754765..2fd9e05834 100644 --- a/src/bonsai/test/core/test_context.py +++ b/src/bonsai/test/core/test_context.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.context as subject -from test.core.bootstrap import ifc, context +from test.core.bootstrap import context, ifc class TestAddContext: diff --git a/src/bonsai/test/core/test_document.py b/src/bonsai/test/core/test_document.py index 5baf3e709f..bd9f743a3d 100644 --- a/src/bonsai/test/core/test_document.py +++ b/src/bonsai/test/core/test_document.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.document as subject -from test.core.bootstrap import ifc, document +from test.core.bootstrap import document, ifc class TestLoadProjectDocuments: diff --git a/src/bonsai/test/core/test_drawing.py b/src/bonsai/test/core/test_drawing.py index 957bd79f79..a83f026ad3 100644 --- a/src/bonsai/test/core/test_drawing.py +++ b/src/bonsai/test/core/test_drawing.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.drawing as subject -from test.core.bootstrap import ifc, drawing, collector, geometry, blender, Prophecy +from test.core.bootstrap import Prophecy, blender, collector, drawing, geometry, ifc class TestEnableEditingText: diff --git a/src/bonsai/test/core/test_geometry.py b/src/bonsai/test/core/test_geometry.py index c9e3392808..21ccb09220 100644 --- a/src/bonsai/test/core/test_geometry.py +++ b/src/bonsai/test/core/test_geometry.py @@ -18,7 +18,7 @@ import bonsai.core.geometry as subject import test.core.test_style -from test.core.bootstrap import ifc, surveyor, geometry, style +from test.core.bootstrap import geometry, ifc, style, surveyor class TestEditObjectPlacement: diff --git a/src/bonsai/test/core/test_georeference.py b/src/bonsai/test/core/test_georeference.py index 6048ae5828..b9b330d816 100644 --- a/src/bonsai/test/core/test_georeference.py +++ b/src/bonsai/test/core/test_georeference.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.georeference as subject -from test.core.bootstrap import ifc, georeference +from test.core.bootstrap import georeference, ifc class TestAddGeoreferencing: diff --git a/src/bonsai/test/core/test_material.py b/src/bonsai/test/core/test_material.py index a8baee0c6c..a2cbf8c433 100644 --- a/src/bonsai/test/core/test_material.py +++ b/src/bonsai/test/core/test_material.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.material as subject -from test.core.bootstrap import ifc, material, style, spatial +from test.core.bootstrap import ifc, material, spatial, style class TestAddMaterial: diff --git a/src/bonsai/test/core/test_misc.py b/src/bonsai/test/core/test_misc.py index 950799a098..716607c0d8 100644 --- a/src/bonsai/test/core/test_misc.py +++ b/src/bonsai/test/core/test_misc.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.misc as subject -from test.core.bootstrap import misc, ifc +from test.core.bootstrap import ifc, misc class TestResizeToStorey: diff --git a/src/bonsai/test/core/test_nest.py b/src/bonsai/test/core/test_nest.py index d2eefc9109..36cbfafc60 100644 --- a/src/bonsai/test/core/test_nest.py +++ b/src/bonsai/test/core/test_nest.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.nest as subject -from test.core.bootstrap import ifc, nest, collector +from test.core.bootstrap import collector, ifc, nest class TestEnableEditingNeset: diff --git a/src/bonsai/test/core/test_owner.py b/src/bonsai/test/core/test_owner.py index b648030407..12d5bf3fa1 100644 --- a/src/bonsai/test/core/test_owner.py +++ b/src/bonsai/test/core/test_owner.py @@ -18,7 +18,7 @@ import bonsai.core.owner as subject -from test.core.bootstrap import ifc, owner, Prophecy +from test.core.bootstrap import Prophecy, ifc, owner class TestAddPerson: diff --git a/src/bonsai/test/core/test_project.py b/src/bonsai/test/core/test_project.py index 7ecdc3c36c..462e1cabcd 100644 --- a/src/bonsai/test/core/test_project.py +++ b/src/bonsai/test/core/test_project.py @@ -18,7 +18,7 @@ import bonsai.core.project as subject -from test.core.bootstrap import ifc, project, spatial, georeference +from test.core.bootstrap import georeference, ifc, project, spatial class TestCreateProject: diff --git a/src/bonsai/test/core/test_root.py b/src/bonsai/test/core/test_root.py index 7d922627ac..121236803d 100644 --- a/src/bonsai/test/core/test_root.py +++ b/src/bonsai/test/core/test_root.py @@ -18,7 +18,7 @@ import bonsai.core.root as subject import test.core.test_geometry -from test.core.bootstrap import ifc, collector, geometry, root +from test.core.bootstrap import collector, geometry, ifc, root class TestCopyClass: diff --git a/src/bonsai/test/core/test_spatial.py b/src/bonsai/test/core/test_spatial.py index a2b824fc91..0ae9695ea2 100644 --- a/src/bonsai/test/core/test_spatial.py +++ b/src/bonsai/test/core/test_spatial.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.spatial as subject -from test.core.bootstrap import ifc, collector, spatial +from test.core.bootstrap import collector, ifc, spatial class TestReferenceStructure: diff --git a/src/bonsai/test/core/test_style.py b/src/bonsai/test/core/test_style.py index ca8fc6b962..a2278cf008 100644 --- a/src/bonsai/test/core/test_style.py +++ b/src/bonsai/test/core/test_style.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.style as subject -from test.core.bootstrap import ifc, material, style, spatial +from test.core.bootstrap import ifc, material, spatial, style class TestAddStyle: diff --git a/src/bonsai/test/core/test_system.py b/src/bonsai/test/core/test_system.py index 1d19189c3b..0f7dd34b62 100644 --- a/src/bonsai/test/core/test_system.py +++ b/src/bonsai/test/core/test_system.py @@ -18,7 +18,7 @@ import bonsai.core.system as subject -from test.core.bootstrap import ifc, system, spatial, group +from test.core.bootstrap import group, ifc, spatial, system class TestLoadSystems: diff --git a/src/bonsai/test/core/test_type.py b/src/bonsai/test/core/test_type.py index 68130c1fa8..ffdb571148 100644 --- a/src/bonsai/test/core/test_type.py +++ b/src/bonsai/test/core/test_type.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.type as subject -from test.core.bootstrap import ifc, type, geometry +from test.core.bootstrap import geometry, ifc, type class TestAssignType: diff --git a/src/bonsai/test/tool/test_aggregate.py b/src/bonsai/test/tool/test_aggregate.py index 20c31cacdc..bab71b2c4a 100644 --- a/src/bonsai/test/tool/test_aggregate.py +++ b/src/bonsai/test/tool/test_aggregate.py @@ -24,10 +24,11 @@ import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.api.unit import ifcopenshell.util.shape_builder + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.aggregate import Aggregate as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_blender.py b/src/bonsai/test/tool/test_blender.py index 2db244abe1..43d04c7c19 100644 --- a/src/bonsai/test/tool/test_blender.py +++ b/src/bonsai/test/tool/test_blender.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell +import pytest + import bonsai.core.tool import bonsai.tool as tool -import pytest -from test.bim.bootstrap import NewFile -from typing import TYPE_CHECKING from bonsai.tool.blender import Blender as subject +from test.bim.bootstrap import NewFile if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums diff --git a/src/bonsai/test/tool/test_brick.py b/src/bonsai/test/tool/test_brick.py index 7470dd5954..c3d1f429e3 100644 --- a/src/bonsai/test/tool/test_brick.py +++ b/src/bonsai/test/tool/test_brick.py @@ -17,22 +17,24 @@ # along with Bonsai. If not, see . import os + import bpy import brickschema import brickschema.persistent -from brickschema.namespaces import REF, A import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.root import ifcopenshell.guid +from brickschema.namespaces import REF, A +from rdflib import Literal, Namespace, URIRef +from rdflib.namespace import RDF + import bonsai.core.tool import bonsai.tool as tool -from rdflib.namespace import RDF -from rdflib import Literal, URIRef, Namespace -from test.bim.bootstrap import NewFile from bonsai.tool.brick import Brick as subject from bonsai.tool.brick import BrickStore +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_cad.py b/src/bonsai/test/tool/test_cad.py index c02aaed8c6..2e84c71718 100644 --- a/src/bonsai/test/tool/test_cad.py +++ b/src/bonsai/test/tool/test_cad.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -from test.bim.bootstrap import NewFile -from bonsai.tool.cad import Cad as subject from mathutils import Vector +from bonsai.tool.cad import Cad as subject +from test.bim.bootstrap import NewFile + V = lambda *x: Vector([float(i) for i in x]) diff --git a/src/bonsai/test/tool/test_classification.py b/src/bonsai/test/tool/test_classification.py index b584050e8d..7bfe2a44d7 100644 --- a/src/bonsai/test/tool/test_classification.py +++ b/src/bonsai/test/tool/test_classification.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.util.classification import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.classification import Classification as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_collector.py b/src/bonsai/test/tool/test_collector.py index ba59aeef92..1ddd7e6381 100644 --- a/src/bonsai/test/tool/test_collector.py +++ b/src/bonsai/test/tool/test_collector.py @@ -24,6 +24,7 @@ import ifcopenshell.api.feature import ifcopenshell.api.group import ifcopenshell.api.spatial import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool from bonsai.tool.collector import Collector as subject diff --git a/src/bonsai/test/tool/test_context.py b/src/bonsai/test/tool/test_context.py index f4035ecd97..c131028e98 100644 --- a/src/bonsai/test/tool/test_context.py +++ b/src/bonsai/test/tool/test_context.py @@ -18,9 +18,10 @@ import bpy import ifcopenshell -import test.bim.bootstrap + import bonsai.core.tool import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool.context import Context as subject diff --git a/src/bonsai/test/tool/test_debug.py b/src/bonsai/test/tool/test_debug.py index 24e875071b..7b434c4ee6 100644 --- a/src/bonsai/test/tool/test_debug.py +++ b/src/bonsai/test/tool/test_debug.py @@ -17,16 +17,18 @@ # along with Bonsai. If not, see . import os +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api.style import ifcopenshell.util.schema + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile -from bonsai.tool.debug import Debug as subject from bonsai.bim.ifc import IfcStore -from pathlib import Path +from bonsai.tool.debug import Debug as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_document.py b/src/bonsai/test/tool/test_document.py index 64ec2791b0..5afb25cd65 100644 --- a/src/bonsai/test/tool/test_document.py +++ b/src/bonsai/test/tool/test_document.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.document + import bonsai.core.tool import bonsai.tool as tool -import json -from test.bim.bootstrap import NewFile from bonsai.tool.document import Document as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_drawing.py b/src/bonsai/test/tool/test_drawing.py index 960e283084..f7beb94358 100644 --- a/src/bonsai/test/tool/test_drawing.py +++ b/src/bonsai/test/tool/test_drawing.py @@ -17,10 +17,10 @@ # along with Bonsai. If not, see . import os +import xml.etree.ElementTree as ET from pathlib import Path -import numpy as np + import bpy -import mathutils import ifcopenshell import ifcopenshell.api.drawing import ifcopenshell.api.group @@ -28,14 +28,15 @@ import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.guid import ifcopenshell.util.element -import bonsai.core.tool -import bonsai.tool as tool -from test.bim.bootstrap import NewFile -from bonsai.tool.drawing import Drawing as subject -from bonsai.bim.module.drawing.data import DecoratorData +import mathutils +import numpy as np from mathutils import Vector -import xml.etree.ElementTree as ET +import bonsai.core.tool +import bonsai.tool as tool +from bonsai.bim.module.drawing.data import DecoratorData +from bonsai.tool.drawing import Drawing as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_geometry.py b/src/bonsai/test/tool/test_geometry.py index a2107da12f..34300f2405 100644 --- a/src/bonsai/test/tool/test_geometry.py +++ b/src/bonsai/test/tool/test_geometry.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import numpy as np +from typing import Union + +import bpy import ifcopenshell import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.api.type +import numpy as np +from mathutils import Vector + import bonsai.core.tool import bonsai.tool as tool -from mathutils import Vector -from test.bim.bootstrap import NewFile from bonsai.tool.geometry import Geometry as subject -from typing import Union +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_georeference.py b/src/bonsai/test/tool/test_georeference.py index a6292abde4..2d29f8429b 100644 --- a/src/bonsai/test/tool/test_georeference.py +++ b/src/bonsai/test/tool/test_georeference.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.context import ifcopenshell.api.georeference import ifcopenshell.api.root import ifcopenshell.api.unit +from mathutils import Vector + import bonsai.core.tool import bonsai.tool as tool -from mathutils import Vector -from test.bim.bootstrap import NewFile from bonsai.tool.georeference import Georeference as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_ifc.py b/src/bonsai/test/tool/test_ifc.py index 3cbd7bdc22..9542332d52 100644 --- a/src/bonsai/test/tool/test_ifc.py +++ b/src/bonsai/test/tool/test_ifc.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import os +import tempfile +from pathlib import Path + import bpy import ifcopenshell -import test.bim.bootstrap +import pytest + import bonsai.core.tool import bonsai.tool as tool -import pytest -import tempfile -import os -from pathlib import Path +import test.bim.bootstrap from bonsai.tool.ifc import Ifc as subject diff --git a/src/bonsai/test/tool/test_library.py b/src/bonsai/test/tool/test_library.py index 64d73f918b..b0bbbf3990 100644 --- a/src/bonsai/test/tool/test_library.py +++ b/src/bonsai/test/tool/test_library.py @@ -18,10 +18,11 @@ import bpy import ifcopenshell + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.library import Library as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_loader.py b/src/bonsai/test/tool/test_loader.py index b128988aba..8817d3d92b 100644 --- a/src/bonsai/test/tool/test_loader.py +++ b/src/bonsai/test/tool/test_loader.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import json +from pathlib import Path + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api.library import ifcopenshell.api.style import ifcopenshell.util.schema -import bonsai.core.tool -import bonsai.tool as tool -from test.bim.bootstrap import NewFile -from bonsai.tool.loader import Loader as subject import numpy as np from ifcopenshell.util.shape_builder import ShapeBuilder from mathutils import Vector -from pathlib import Path + +import bonsai.core.tool +import bonsai.tool as tool +from bonsai.tool.loader import Loader as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): @@ -188,8 +190,8 @@ class TestCreatingStyles(NewFile): def get_png_raster_code(): import base64 - import zlib import struct + import zlib # https://blender.stackexchange.com/questions/62072/does-blender-have-a-method-to-a-get-png-formatted-bytearray-for-an-image-via-pyt width = 2 diff --git a/src/bonsai/test/tool/test_material.py b/src/bonsai/test/tool/test_material.py index ef423afb4c..870417a254 100644 --- a/src/bonsai/test/tool/test_material.py +++ b/src/bonsai/test/tool/test_material.py @@ -23,10 +23,11 @@ import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.material import Material as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_misc.py b/src/bonsai/test/tool/test_misc.py index 883755888a..c3d3cec2fe 100644 --- a/src/bonsai/test/tool/test_misc.py +++ b/src/bonsai/test/tool/test_misc.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import numpy + +import bpy import ifcopenshell import ifcopenshell.api.aggregate import ifcopenshell.api.spatial import ifcopenshell.api.unit -import test.bim.bootstrap +import numpy + import bonsai.core.tool import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool.misc import Misc as subject diff --git a/src/bonsai/test/tool/test_model.py b/src/bonsai/test/tool/test_model.py index d69b2a532e..756268cbee 100644 --- a/src/bonsai/test/tool/test_model.py +++ b/src/bonsai/test/tool/test_model.py @@ -16,6 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json +from typing import Any + import bpy import ifcopenshell import ifcopenshell.api.geometry @@ -26,14 +29,13 @@ import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.shape_builder +import numpy as np +from ifcopenshell.util.shape_builder import ShapeBuilder, V + import bonsai.core.tool import bonsai.tool as tool -import numpy as np -import json -from typing import Any -from test.bim.bootstrap import NewFile from bonsai.tool.model import Model as subject -from ifcopenshell.util.shape_builder import V, ShapeBuilder +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_nest.py b/src/bonsai/test/tool/test_nest.py index 257bbcee88..14acfa18bc 100644 --- a/src/bonsai/test/tool/test_nest.py +++ b/src/bonsai/test/tool/test_nest.py @@ -20,10 +20,11 @@ import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.spatial + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.nest import Nest as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_owner.py b/src/bonsai/test/tool/test_owner.py index 84ca456e96..bc4ed2d533 100644 --- a/src/bonsai/test/tool/test_owner.py +++ b/src/bonsai/test/tool/test_owner.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from functools import cache +from typing import Any + import bpy import ifcopenshell import ifcopenshell.api.owner + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.owner import Owner as subject -from typing import Any -from functools import cache +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_patch.py b/src/bonsai/test/tool/test_patch.py index 8fce8974a9..955908f284 100644 --- a/src/bonsai/test/tool/test_patch.py +++ b/src/bonsai/test/tool/test_patch.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.patch import Patch as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_polyline.py b/src/bonsai/test/tool/test_polyline.py index 9dd1e8f41c..b55c6b52a6 100644 --- a/src/bonsai/test/tool/test_polyline.py +++ b/src/bonsai/test/tool/test_polyline.py @@ -21,10 +21,11 @@ import ifcopenshell import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.unit + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.polyline import Polyline as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_project.py b/src/bonsai/test/tool/test_project.py index 5751660d83..06c3f8ec25 100644 --- a/src/bonsai/test/tool/test_project.py +++ b/src/bonsai/test/tool/test_project.py @@ -17,20 +17,22 @@ # along with Bonsai. If not, see . import contextlib +import tempfile +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.document import ifcopenshell.api.root import ifcopenshell.api.unit -import bonsai.core.tool -import bonsai.tool as tool -import tempfile import ifcpatch from ifcpatch.recipes import Ifc2Sql -from test.bim.bootstrap import NewFile + +import bonsai.core.tool +import bonsai.tool as tool from bonsai.tool.project import Project as subject -from pathlib import Path +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_pset.py b/src/bonsai/test/tool/test_pset.py index 9aa8e70289..9b01105748 100644 --- a/src/bonsai/test/tool/test_pset.py +++ b/src/bonsai/test/tool/test_pset.py @@ -20,6 +20,7 @@ import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset + import bonsai.core.tool import bonsai.tool as tool from bonsai.tool.pset import Pset as subject diff --git a/src/bonsai/test/tool/test_pset_template.py b/src/bonsai/test/tool/test_pset_template.py index a104f8baff..d2aa408caa 100644 --- a/src/bonsai/test/tool/test_pset_template.py +++ b/src/bonsai/test/tool/test_pset_template.py @@ -20,6 +20,7 @@ import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset + import bonsai.core.tool import bonsai.tool as tool from bonsai.tool.pset_template import PsetTemplate as subject diff --git a/src/bonsai/test/tool/test_qto.py b/src/bonsai/test/tool/test_qto.py index 2b06cbb3c9..9ec7dc4efd 100644 --- a/src/bonsai/test/tool/test_qto.py +++ b/src/bonsai/test/tool/test_qto.py @@ -25,11 +25,12 @@ import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.pset -import test.bim.bootstrap -import bonsai.core.tool -import bonsai.core.root -import bonsai.tool as tool + import bonsai.bim.import_ifc as import_ifc +import bonsai.core.root +import bonsai.core.tool +import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool.qto import Qto as subject diff --git a/src/bonsai/test/tool/test_root.py b/src/bonsai/test/tool/test_root.py index b27b556a03..39b853d63c 100644 --- a/src/bonsai/test/tool/test_root.py +++ b/src/bonsai/test/tool/test_root.py @@ -22,10 +22,11 @@ import ifcopenshell.api import ifcopenshell.api.feature import ifcopenshell.api.type import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.root import Root as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_sequence.py b/src/bonsai/test/tool/test_sequence.py index 7dab2671b9..af915f0273 100644 --- a/src/bonsai/test/tool/test_sequence.py +++ b/src/bonsai/test/tool/test_sequence.py @@ -17,15 +17,17 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.api.root + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.sequence import Sequence as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_spatial.py b/src/bonsai/test/tool/test_spatial.py index fd9316912a..299e615f2f 100644 --- a/src/bonsai/test/tool/test_spatial.py +++ b/src/bonsai/test/tool/test_spatial.py @@ -16,17 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import numpy as np import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.spatial +import numpy as np +from mathutils import Matrix + import bonsai.core.tool import bonsai.tool as tool from bonsai.tool.spatial import Spatial as subject from test.bim.bootstrap import NewFile -from mathutils import Matrix class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_style.py b/src/bonsai/test/tool/test_style.py index 23c70461ee..743ac317ec 100644 --- a/src/bonsai/test/tool/test_style.py +++ b/src/bonsai/test/tool/test_style.py @@ -17,17 +17,19 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.util.representation import pytest +from ifcopenshell.util.shape_builder import ShapeBuilder + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.style import Style as subject -from ifcopenshell.util.shape_builder import ShapeBuilder +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_surveyor.py b/src/bonsai/test/tool/test_surveyor.py index 0228cd9271..782b171a6d 100644 --- a/src/bonsai/test/tool/test_surveyor.py +++ b/src/bonsai/test/tool/test_surveyor.py @@ -17,16 +17,16 @@ # along with Bonsai. If not, see . import bpy -import numpy as np import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.geolocation +import numpy as np -import test.bim.bootstrap import bonsai.core.tool import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool import Surveyor as subject diff --git a/src/bonsai/test/tool/test_system.py b/src/bonsai/test/tool/test_system.py index 1a18811c37..3067ccfa09 100644 --- a/src/bonsai/test/tool/test_system.py +++ b/src/bonsai/test/tool/test_system.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from math import pi + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.system import ifcopenshell.util.unit +import numpy as np +from mathutils import Euler, Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool -import numpy as np -from test.bim.bootstrap import NewFile from bonsai.tool.system import System as subject -from mathutils import Euler, Vector, Matrix -from math import pi +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_type.py b/src/bonsai/test/tool/test_type.py index 5bbf3c4c42..0d91b1f4f0 100644 --- a/src/bonsai/test/tool/test_type.py +++ b/src/bonsai/test/tool/test_type.py @@ -20,10 +20,11 @@ import bpy import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.type + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.type import Type as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_unit.py b/src/bonsai/test/tool/test_unit.py index 190a8fa302..6e0e756b67 100644 --- a/src/bonsai/test/tool/test_unit.py +++ b/src/bonsai/test/tool/test_unit.py @@ -21,10 +21,11 @@ import ifcopenshell import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.unit + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.unit import Unit as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/ifc4d/__main__.py b/src/ifc4d/__main__.py index b876db860c..86c36394e6 100644 --- a/src/ifc4d/__main__.py +++ b/src/ifc4d/__main__.py @@ -1,6 +1,7 @@ import argparse import ifcopenshell + from ifc4d.msp2ifc import MSP2Ifc from ifc4d.p6xer2ifc import P6XER2Ifc from ifc4d.p62ifc import P62Ifc diff --git a/src/ifc4d/ifc4d/p62ifc.py b/src/ifc4d/ifc4d/p62ifc.py index ed2781d5cc..7d4881161a 100644 --- a/src/ifc4d/ifc4d/p62ifc.py +++ b/src/ifc4d/ifc4d/p62ifc.py @@ -19,7 +19,6 @@ import datetime import xml.etree.ElementTree as ET - from .common import ScheduleIfcGenerator diff --git a/src/ifc4d/ifc4d/pp2ifc.py b/src/ifc4d/ifc4d/pp2ifc.py index ce76b60226..b2be0c753b 100644 --- a/src/ifc4d/ifc4d/pp2ifc.py +++ b/src/ifc4d/ifc4d/pp2ifc.py @@ -12,7 +12,6 @@ from collections import defaultdict from datetime import timedelta from typing import Any - from .common import Activity, Calendar, ScheduleIfcGenerator, WBSEntry from .wpattern import AstaCalendarWorkPattern diff --git a/src/ifc5d/test/test_csv2ifc.py b/src/ifc5d/test/test_csv2ifc.py index fc31e9d86e..c14a795da3 100644 --- a/src/ifc5d/test/test_csv2ifc.py +++ b/src/ifc5d/test/test_csv2ifc.py @@ -20,14 +20,15 @@ import csv import tempfile from pathlib import Path -import ifc5d.csv2ifc -import ifc5d.ifc5Dspreadsheet import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.cost import pytest +import ifc5d.csv2ifc +import ifc5d.ifc5Dspreadsheet + class TestCsv2Ifc: @staticmethod diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py b/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py index 0b431163bc..ac763e6af1 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py @@ -18,7 +18,6 @@ import math - import ifcopenshell.api.alignment import ifcopenshell.api.unit import ifcopenshell.util diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py b/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py index ad654ac97d..e1b0978e1a 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py @@ -18,7 +18,6 @@ import math - import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/test_stream.py b/src/ifcopenshell-python/test/test_stream.py index 20fe67e5ec..754fcc4527 100644 --- a/src/ifcopenshell-python/test/test_stream.py +++ b/src/ifcopenshell-python/test/test_stream.py @@ -18,7 +18,6 @@ from pathlib import Path - import ifcopenshell TEST_FILE = Path(__file__).parent / "files" / "basic.ifc" diff --git a/src/ifcopenshell-python/test/util/test_file.py b/src/ifcopenshell-python/test/util/test_file.py index a1ee333b6b..18fc8ef07c 100644 --- a/src/ifcopenshell-python/test/util/test_file.py +++ b/src/ifcopenshell-python/test/util/test_file.py @@ -20,7 +20,6 @@ import tempfile import zipfile from pathlib import Path - import ifcopenshell.util.file as subject import test.bootstrap diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py b/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py index 44fd47cebc..1725f37aa2 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py @@ -20,14 +20,13 @@ from typing import TYPE_CHECKING, Literal import bpy import ifcopenshell +import ifcsverchok.helper +import ifcsverchok.helper as helper from ifcopenshell.util.shape_builder import ShapeBuilder from sverchok.core.sockets import SvVerticesSocket from sverchok.data_structure import updateNode from sverchok.node_tree import SverchCustomTreeNode -import ifcsverchok.helper -import ifcsverchok.helper as helper - class SvIfcSbExtrude(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): bl_idname = "SvIfcSbExtrude" diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py b/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py index ec2609613e..8b740bef08 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py @@ -17,12 +17,11 @@ # along with IfcSverchok. If not, see . import bpy +import ifcsverchok.helper as helper import sverchok.core.sockets from ifcsverchok.nodes.ifc.shape_builder.representation import ShapeBuilder from sverchok.node_tree import SverchCustomTreeNode -import ifcsverchok.helper as helper - class SvSbMesh(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): bl_idname = "SvSbMesh" diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py b/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py index 59e6c94804..2f27a3834f 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py @@ -17,12 +17,11 @@ # along with IfcSverchok. If not, see . import bpy +import ifcsverchok.helper as helper import sverchok.core.sockets from ifcsverchok.nodes.ifc.shape_builder.representation import ShapeBuilder from sverchok.node_tree import SverchCustomTreeNode -import ifcsverchok.helper as helper - class SvSbPolyline(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): bl_idname = "SvSbPolyline" diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/rectangle.py b/src/ifcsverchok/nodes/ifc/shape_builder/rectangle.py index 8b9b60c81d..35e73db71f 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/rectangle.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/rectangle.py @@ -17,11 +17,10 @@ # along with IfcSverchok. If not, see . import bpy -from ifcopenshell.util.shape_builder import ShapeBuilder -from sverchok.node_tree import SverchCustomTreeNode - import ifcsverchok.helper import ifcsverchok.helper as helper +from ifcopenshell.util.shape_builder import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode class SvIfcSbRectangle(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/representation.py b/src/ifcsverchok/nodes/ifc/shape_builder/representation.py index c1e8a9eb54..7fefe038dc 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/representation.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/representation.py @@ -19,11 +19,10 @@ import bpy import ifcopenshell import ifcopenshell.util.representation -from ifcopenshell.util.shape_builder import ShapeBuilder -from sverchok.node_tree import SverchCustomTreeNode - import ifcsverchok.helper import ifcsverchok.helper as helper +from ifcopenshell.util.shape_builder import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode class SvIfcSbRepresentation(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py b/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py index 2968c5e4ed..d8585ba7a2 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py @@ -21,11 +21,10 @@ import ifcopenshell import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.shape +import ifcsverchok.helper as helper import sverchok.core.sockets from sverchok.node_tree import SverchCustomTreeNode -import ifcsverchok.helper as helper - class SvSbShapeOutput(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): """ diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/test.py b/src/ifcsverchok/nodes/ifc/shape_builder/test.py index e2fc702721..4b8cd2ba04 100644 --- a/src/ifcsverchok/nodes/ifc/shape_builder/test.py +++ b/src/ifcsverchok/nodes/ifc/shape_builder/test.py @@ -17,10 +17,9 @@ # along with IfcSverchok. If not, see . import bpy -from sverchok.node_tree import SverchCustomTreeNode - import ifcsverchok.helper import ifcsverchok.helper as helper +from sverchok.node_tree import SverchCustomTreeNode class SvIfcSbTest(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifctester/test/test_facet.py b/src/ifctester/test/test_facet.py index a8ace9622a..3c5d91a6e4 100644 --- a/src/ifctester/test/test_facet.py +++ b/src/ifctester/test/test_facet.py @@ -33,6 +33,7 @@ import ifcopenshell.api.type import ifcopenshell.api.unit import ifcopenshell.guid import ifcopenshell.util.pset + import ifctester.facet import ifctester.ids from ifctester.facet import ( diff --git a/src/ifctester/webapp/public/worker/api.py b/src/ifctester/webapp/public/worker/api.py index ebf4bbe01a..c7d3a90662 100644 --- a/src/ifctester/webapp/public/worker/api.py +++ b/src/ifctester/webapp/public/worker/api.py @@ -1,9 +1,10 @@ import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.pset -from ifctester.ids import Ids, IdsXmlValidationError, get_schema from xmlschema.validators.exceptions import XMLSchemaValidationError +from ifctester.ids import Ids, IdsXmlValidationError, get_schema + # https://github.com/buildingSMART/IDS/blob/9914d568c7ac037acd97e58a0d16e9f93c3e3416/Schema/ids.xsd#L232 ifc_schemas = ["IFC2X3", "IFC4", "IFC4X3_ADD2"] From 44a52863a2bbf2bed8c9e7a026ad5db273b78483 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 26 Jan 2026 23:30:39 +1100 Subject: [PATCH 074/171] Fix #3764. WARNING: Preserve material usage attributes when switching types and refactor type regeneration API listeners This is a dangerous commit because the effect of refactoring of the listeners is hard to know. --- .../bonsai/bim/module/drawing/workspace.py | 2 +- src/bonsai/bonsai/bim/module/model/handler.py | 13 -------- src/bonsai/bonsai/bim/module/model/product.py | 4 +-- src/bonsai/bonsai/bim/module/model/profile.py | 16 ---------- src/bonsai/bonsai/bim/module/model/slab.py | 32 ------------------- src/bonsai/bonsai/bim/module/model/wall.py | 31 ------------------ src/bonsai/bonsai/bim/module/type/operator.py | 4 +-- src/bonsai/bonsai/core/type.py | 12 +++++-- src/bonsai/bonsai/tool/drawing.py | 2 +- src/bonsai/bonsai/tool/model.py | 15 +++++++++ src/bonsai/bonsai/tool/spatial.py | 3 +- src/bonsai/bonsai/tool/type.py | 17 ++++++++++ src/bonsai/test/core/test_type.py | 8 ++--- 13 files changed, 54 insertions(+), 105 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/workspace.py b/src/bonsai/bonsai/bim/module/drawing/workspace.py index 5796c20303..bc7463073e 100644 --- a/src/bonsai/bonsai/bim/module/drawing/workspace.py +++ b/src/bonsai/bonsai/bim/module/drawing/workspace.py @@ -168,7 +168,7 @@ def create_annotation_occurrence(context): ) assert element - bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) ifcopenshell.api.group.assign_group(ifc_file, group=tool.Drawing.get_drawing_group(drawing), products=[element]) tool.Collector.assign(obj) diff --git a/src/bonsai/bonsai/bim/module/model/handler.py b/src/bonsai/bonsai/bim/module/model/handler.py index 26a4863837..47075cdcfa 100644 --- a/src/bonsai/bonsai/bim/module/model/handler.py +++ b/src/bonsai/bonsai/bim/module/model/handler.py @@ -37,24 +37,11 @@ def load_post(*args): "sequence.edit_task_time", "Bonsai.Task.CalculateQuantities", task.calculate_quantities ) - ifcopenshell.api.add_post_listener( - "type.assign_type", "Bonsai.DumbWall.RegenerateFromType", wall.DumbWallPlaner().regenerate_from_type - ) - - ifcopenshell.api.add_post_listener( - "type.assign_type", "Bonsai.DumbSlab.RegenerateFromType", slab.DumbSlabPlaner().regenerate_from_type - ) - ifcopenshell.api.add_post_listener( "material.edit_profile", "Bonsai.DumbProfile.RegenerateFromProfile", profile.DumbProfileRegenerator().regenerate_from_profile, ) - ifcopenshell.api.add_post_listener( - "type.assign_type", - "Bonsai.DumbProfile.RegenerateFromType", - profile.DumbProfileRegenerator().regenerate_from_type, - ) ifcopenshell.api.add_post_listener( "type.assign_type", diff --git a/src/bonsai/bonsai/bim/module/model/product.py b/src/bonsai/bonsai/bim/module/model/product.py index 822342ab75..8ca5712116 100644 --- a/src/bonsai/bonsai/bim/module/model/product.py +++ b/src/bonsai/bonsai/bim/module/model/product.py @@ -380,7 +380,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): ifc_class=instance_class, should_add_representation=False, ) - bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) rprops = tool.Root.get_root_props() ifc_context = None @@ -433,7 +433,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): ) element = tool.Ifc.get_entity(obj) - bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) if existing_context: representation = ifcopenshell.util.representation.get_representation(element, existing_context) diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index 124a70707f..9271f2acc1 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -267,22 +267,6 @@ class DumbProfileRegenerator: results.extend(inverse.RelatedObjects) return results - def regenerate_from_type(self, usecase_path, ifc_file, settings): - relating_type = settings["relating_type"] - - new_material = ifcopenshell.util.element.get_material(relating_type) - if not new_material or not new_material.is_a("IfcMaterialProfileSet"): - return - - for related_object in settings["related_objects"]: - self._regenerate_from_type(related_object) - - def _regenerate_from_type(self, related_object: ifcopenshell.entity_instance) -> None: - obj = tool.Ifc.get_object(related_object) - if not obj or not tool.Geometry.get_active_representation(obj): - return - DumbProfileRecalculator().recalculate([obj]) - class ExtendProfile(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.extend_profile" diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index 1d673aca8e..509d24a60c 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -243,38 +243,6 @@ class DumbSlabPlaner: for element in rel.RelatedObjects: self.change_thickness(element, total_thickness, preserve_offset=True) - def regenerate_from_type(self, usecase_path, ifc_file, settings): - relating_type = settings["relating_type"] - - new_material = ifcopenshell.util.element.get_material(relating_type) - if not new_material or not new_material.is_a("IfcMaterialLayerSet"): - return - - parametric = ifcopenshell.util.element.get_psets(settings["relating_type"]).get("EPset_Parametric") - layer_set_direction = None - if parametric: - layer_set_direction = parametric.get("LayerSetDirection", layer_set_direction) - new_thickness = sum([l.LayerThickness for l in new_material.MaterialLayers]) - - self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) - for related_object in settings["related_objects"]: - self._regenerate_from_type(related_object, layer_set_direction, new_thickness) - - def _regenerate_from_type( - self, related_object: ifcopenshell.entity_instance, layer_set_direction: Optional[str], new_thickness: float - ) -> None: - obj = tool.Ifc.get_object(related_object) - if not obj or not tool.Geometry.get_active_representation(obj): - return - - material = ifcopenshell.util.element.get_material(related_object) - if not material or not material.is_a("IfcMaterialLayerSetUsage"): - return - if layer_set_direction: - material.LayerSetDirection = layer_set_direction - if material.LayerSetDirection == "AXIS3": - self.change_thickness(related_object, new_thickness) - def regenerate_from_occurence(self, element, material_set_usage): self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) layer_set = material_set_usage.ForLayerSet diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index 9c94a27af0..5276e64692 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -1132,37 +1132,6 @@ class DumbWallPlaner: walls.extend([tool.Ifc.get_object(e) for e in rel.RelatedObjects]) tool.Model.recalculate_walls([w for w in set(walls) if w]) - def regenerate_from_type(self, usecase_path, ifc_file, settings): - relating_type = settings["relating_type"] - - new_material = ifcopenshell.util.element.get_material(relating_type) - if not new_material or not new_material.is_a("IfcMaterialLayerSet"): - return - - parametric = ifcopenshell.util.element.get_psets(relating_type).get("EPset_Parametric") - layer_set_direction = None - if parametric: - layer_set_direction = parametric.get("LayerSetDirection", layer_set_direction) - - self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) - for related_object in settings["related_objects"]: - self._regenerate_from_type(related_object, layer_set_direction) - - def _regenerate_from_type( - self, related_object: ifcopenshell.entity_instance, layer_set_direction: Optional[str] - ) -> None: - obj = tool.Ifc.get_object(related_object) - if not obj or not tool.Geometry.get_active_representation(obj): - return - - material = ifcopenshell.util.element.get_material(related_object) - if not material or not material.is_a("IfcMaterialLayerSetUsage"): - return - if layer_set_direction: - material.LayerSetDirection = layer_set_direction - if material.LayerSetDirection == "AXIS2": - tool.Model.recalculate_walls([obj]) - class DumbWallJoiner: def __init__(self): diff --git a/src/bonsai/bonsai/bim/module/type/operator.py b/src/bonsai/bonsai/bim/module/type/operator.py index 66c87177f9..8d24989f12 100644 --- a/src/bonsai/bonsai/bim/module/type/operator.py +++ b/src/bonsai/bonsai/bim/module/type/operator.py @@ -74,7 +74,7 @@ class AssignType(bpy.types.Operator, tool.Ifc.Operator): element = tool.Ifc.get_entity(obj) if not element or not element.is_a("IfcObject"): continue - core.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + core.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) # Switch to the drawing's target view if available if active_target_view and element.Representation: @@ -384,7 +384,7 @@ class DuplicateType(bpy.types.Operator, tool.Ifc.Operator): for selected_obj in selected_objects: selected_element = tool.Ifc.get_entity(selected_obj) if selected_element and selected_element.is_a("IfcObject"): - core.assign_type(tool.Ifc, tool.Type, element=selected_element, type=new) + core.assign_type(tool.Ifc, tool.Model, tool.Type, element=selected_element, type=new) if prefs.occurrence_name_style == "TYPE": selected_obj.name = tool.Model.generate_occurrence_name(new, selected_element.is_a()) diff --git a/src/bonsai/bonsai/core/type.py b/src/bonsai/bonsai/core/type.py index 2467f124d3..a203b9ff76 100644 --- a/src/bonsai/bonsai/core/type.py +++ b/src/bonsai/bonsai/core/type.py @@ -31,14 +31,22 @@ if TYPE_CHECKING: def assign_type( ifc: type[tool.Ifc], + model: type[tool.Model], type_tool: type[tool.Type], element: ifcopenshell.entity_instance, type: ifcopenshell.entity_instance, ) -> None: + usage_attributes = type_tool.record_material_usage_attributes(element) ifc.run("type.assign_type", related_objects=[element], relating_type=type) obj = ifc.get_object(element) - if type_tool.has_material_usage(element): - pass # for now, representation regeneration handled by API listeners + if (usage := model.get_usage_type(type)) and usage_attributes: + type_tool.restore_material_usage_attributes(element, usage_attributes) + if (usage := model.get_usage_type(type)) == "PROFILE": + model.regenerate_profile(obj) + elif usage == "LAYER2": + model.recalculate_walls([obj]) + elif usage == "LAYER3": + model.regenerate_slab(obj) else: type_data = type_tool.get_object_data(ifc.get_object(type)) if type_data: diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index f268151faa..51d06c1c18 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -1279,7 +1279,7 @@ class Drawing(bonsai.core.tool.Drawing): @classmethod def run_type_assign_type(cls, element: ifcopenshell.entity_instance, relating_type: ifcopenshell.entity_instance): - return bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + return bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) @classmethod def reload_representation(cls, obj: bpy.types.Object, representation: ifcopenshell.entity_instance): diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index bc6357cb0d..08a0a0fd85 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -2743,6 +2743,21 @@ class Model(bonsai.core.tool.Model): cls.recreate_wall(element, wall) + @classmethod + def regenerate_slab(cls, obj: bpy.types.Object) -> None: + from bonsai.bim.module.model.slab import DumbSlabPlaner + + element = tool.Ifc.get_entity(obj) + material_set = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + new_thickness = sum([l.LayerThickness for l in material_set.MaterialLayers]) + DumbSlabPlaner().change_thickness(element, new_thickness) + + @classmethod + def regenerate_profile(cls, obj: bpy.types.Object) -> None: + from bonsai.bim.module.model.profile import DumbProfileRecalculator + + DumbProfileRecalculator().recalculate([obj]) + @classmethod def run_ifcsverchok_graph_on_bonsai_file(cls, node_tree: sverchok.node_tree.SverchCustomTree) -> None: from ifcsverchok.ifcstore import SvIfcStore diff --git a/src/bonsai/bonsai/tool/spatial.py b/src/bonsai/bonsai/tool/spatial.py index 922c6cc9ad..70a92f4cff 100644 --- a/src/bonsai/bonsai/tool/spatial.py +++ b/src/bonsai/bonsai/tool/spatial.py @@ -1177,6 +1177,7 @@ class Spatial(bonsai.core.tool.Spatial): @classmethod def assign_type_to_obj(cls, obj: bpy.types.Object) -> None: + # TODO this code looks in the wrong spot and suspicious props = tool.Model.get_model_props() ifc_file = tool.Ifc.get() relating_type_id = props.relating_type_id @@ -1196,7 +1197,7 @@ class Spatial(bonsai.core.tool.Spatial): element: ifcopenshell.entity_instance, relating_type: ifcopenshell.entity_instance, ) -> None: - bonsai.core.type.assign_type(ifc, type, element=element, type=relating_type) + bonsai.core.type.assign_type(ifc, tool.Model, type, element=element, type=relating_type) @classmethod def regen_obj_representation(cls, obj: bpy.types.Object, body: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/tool/type.py b/src/bonsai/bonsai/tool/type.py index 95474e57b7..84a349f288 100644 --- a/src/bonsai/bonsai/tool/type.py +++ b/src/bonsai/bonsai/tool/type.py @@ -143,3 +143,20 @@ class Type(bonsai.core.tool.Type): obj=obj, representation=representation, ) + + @classmethod + def record_material_usage_attributes(cls, element: ifcopenshell.entity_instance) -> dict | None: + if (material := ifcopenshell.util.element.get_material(element)) and "Usage" in material.is_a(): + return material.get_info() + + @classmethod + def restore_material_usage_attributes(cls, element: ifcopenshell.entity_instance, usage_attributes: dict) -> None: + if (material := ifcopenshell.util.element.get_material(element)) and material.is_a() == usage_attributes[ + "type" + ]: + if usage_attributes["type"] == "IfcMaterialLayerSetUsage": + for attr in ("LayerSetDirection", "DirectionSense", "OffsetFromReferenceLine", "ReferenceExtent"): + setattr(material, attr, usage_attributes.get(attr)) + elif usage_attributes["type"] == "IfcMaterialProfileSetUsage": + for attr in ("CardinalPoint", "ReferenceExtent"): + setattr(material, attr, usage_attributes.get(attr)) diff --git a/src/bonsai/test/core/test_type.py b/src/bonsai/test/core/test_type.py index ffdb571148..0987ab3d9e 100644 --- a/src/bonsai/test/core/test_type.py +++ b/src/bonsai/test/core/test_type.py @@ -17,11 +17,11 @@ # along with Bonsai. If not, see . import bonsai.core.type as subject -from test.core.bootstrap import geometry, ifc, type +from test.core.bootstrap import ifc, model, type, geometry class TestAssignType: - def test_assigning_and_switching_to_an_existing_type_data(self, ifc, type): + def test_assigning_and_switching_to_an_existing_type_data(self, ifc, model, type): ifc.run("type.assign_type", related_objects=["element"], relating_type="type").should_be_called() type.has_material_usage("element").should_be_called().will_return(False) ifc.get_object("type").should_be_called().will_return("type_obj") @@ -29,7 +29,7 @@ class TestAssignType: type.change_object_data("obj", "type_obj_data", is_global=False).should_be_called() ifc.get_object("element").should_be_called().will_return("obj") type.disable_editing("obj").should_be_called() - subject.assign_type(ifc, type, element="element", type="type") + subject.assign_type(ifc, model, type, element="element", type="type") def test_assigning_and_not_changing_data_if_the_type_has_no_data(self, ifc, type): ifc.run("type.assign_type", related_objects=["element"], relating_type="type").should_be_called() @@ -38,7 +38,7 @@ class TestAssignType: type.get_object_data("type_obj").should_be_called().will_return(None) ifc.get_object("element").should_be_called().will_return("obj") type.disable_editing("obj").should_be_called() - subject.assign_type(ifc, type, element="element", type="type") + subject.assign_type(ifc, model, type, element="element", type="type") class TestPurgeUnusedTypes: From fed98451d47957f930106d39c778b7da922b3e38 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Tue, 27 Jan 2026 01:32:06 +0100 Subject: [PATCH 075/171] connect the ports when creating several conected IfcFlowSegment with polyline --- src/bonsai/bonsai/bim/module/model/profile.py | 6 ++++++ .../bonsai/bim/module/system/operator.py | 20 ++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index 9271f2acc1..0a11fa191b 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -1131,8 +1131,14 @@ class DrawPolylineProfile(bpy.types.Operator, PolylineOperator, tool.Ifc.Operato MEPGenerator().setup_ports(profile1["obj"]) else: + connect_IfcFlowSegments = tool.Ifc.get_entity(profiles[0]["obj"]).is_a("IfcFlowSegment") for profile1, profile2 in zip(profiles[:-1], profiles[1:]): DumbProfileJoiner().join_V(profile2["obj"], profile1["obj"]) + if connect_IfcFlowSegments: + bpy.ops.bim.mep_connect_elements( + obj1_name=profile1["obj"].name, + obj2_name=profile2["obj"].name + ) def modal(self, context, event): return IfcStore.execute_ifc_operator(self, context, event, method="MODAL") diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 8dd6724de3..5fecd05ffb 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -317,17 +317,19 @@ class MEPConnectElements(bpy.types.Operator, tool.Ifc.Operator): bl_label = "Connect MEP Elements" bl_description = "Connects two selected elements by their closest located ports and adjusts them" bl_options = {"REGISTER", "UNDO"} - - @classmethod - def poll(cls, context): - if not len(context.selected_objects) == 2: - cls.poll_message_set("Need to select 2 objects.") - return False - return True + obj1_name: bpy.props.StringProperty(name="Object 1") + obj2_name: bpy.props.StringProperty(name="Object 2") def _execute(self, context): - obj1 = context.active_object - obj2 = next(o for o in context.selected_objects if o != obj1) + if self.obj1_name and self.obj2_name: + obj1 = bpy.data.objects.get(self.obj1_name) + obj2 = bpy.data.objects.get(self.obj2_name) + else: + if not context.selected_objects or len(context.selected_objects) != 2: + self.report({"ERROR"}, "Need to select 2 objects.") + return {"CANCELLED"} + obj1 = context.active_object + obj2 = next(o for o in context.selected_objects if o != obj1) tool.Model.sync_object_ifc_position(obj1) tool.Model.sync_object_ifc_position(obj2) From de6f6cc8b2ad0be8fe1f9decec4693e7145b8c21 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Mon, 26 Jan 2026 19:53:41 -0600 Subject: [PATCH 076/171] Skip incompatible objects instead of failing IFC join operation When joining objects with mismatched representation types, deselect and skip incompatible objects rather than canceling the entire operation. This allows users to join compatible objects even when the selection includes incompatible ones. --- src/bonsai/bonsai/bim/module/geometry/operator.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index a03c6ae19c..97c5bb88ed 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -2063,6 +2063,7 @@ class OverrideJoin(bpy.types.Operator, tool.Ifc.Operator): return position items = list(representation.Items) + skipped_objects = [] for obj in context.selected_editable_objects: if obj == self.target: continue @@ -2082,12 +2083,8 @@ class OverrideJoin(bpy.types.Operator, tool.Ifc.Operator): assert obj_rep if obj_rep.RepresentationType != representation_type: obj.select_set(False) - self.report( - {"ERROR"}, - f"IFC join failed - object '{obj.name}' has a different representation type " - f"({obj_rep.RepresentationType})\nthan target '{self.target.name}' ({representation_type}).", - ) - return + skipped_objects.append((obj.name, obj_rep.RepresentationType)) + continue placement = np.array(obj.matrix_world) placement[M_TRANSLATION] /= si_conversion @@ -2167,6 +2164,9 @@ class OverrideJoin(bpy.types.Operator, tool.Ifc.Operator): items.append(copied_item) ifcopenshell.api.root.remove_product(ifc_file, product=element) + if skipped_objects: + skipped_info = ", ".join(f"'{name}' ({rep_type})" for name, rep_type in skipped_objects) + self.report({"INFO"}, f"Skipped incompatible objects: {skipped_info}") representation.Items = items bpy.ops.object.join() core.switch_representation( From e41df68124b72e83616736cdac30cd90c0a48170 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jan 2026 15:57:19 +1100 Subject: [PATCH 077/171] Reintroduce public API for IfcTester after ruff purge 72f8218fcd87429d920b08cb73b11cf959ba4b26 --- src/ifctester/ifctester/__init__.py | 3 ++- src/ifctester/ifctester/ids.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ifctester/ifctester/__init__.py b/src/ifctester/ifctester/__init__.py index 46b38aa82e..f7d708105d 100644 --- a/src/ifctester/ifctester/__init__.py +++ b/src/ifctester/ifctester/__init__.py @@ -16,6 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcTester. If not, see . -from .ids import open as open +from .ids import open __version__ = version = "0.0.0" +__all__ = ["open"] diff --git a/src/ifctester/ifctester/ids.py b/src/ifctester/ifctester/ids.py index d6ae3bd44a..8d00ce9fac 100644 --- a/src/ifctester/ifctester/ids.py +++ b/src/ifctester/ifctester/ids.py @@ -28,14 +28,21 @@ from xmlschema import XMLSchema, etree_tostring from xmlschema.validators.exceptions import XMLSchemaValidationError from .facet import ( + Attribute, Cardinality, + Classification, Entity, Facet, FacetFailure, + Material, + PartOf, + Property, + Restriction, get_pset, get_psets, ) +__all__ = ["Attribute", "Classification", "Entity", "Material", "PartOf", "Property", "Restriction"] cwd = os.path.dirname(os.path.realpath(__file__)) schema = None From 6ad99495712a382f682b75d9a6cb9e447a7d3ca7 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jan 2026 19:12:43 +1100 Subject: [PATCH 078/171] Update tests based on new simpler unit settings code --- src/bonsai/bonsai/bim/prop.py | 4 +- src/bonsai/bonsai/tool/unit.py | 15 +++-- src/bonsai/test/tool/test_unit.py | 96 ++++++++++++------------------- 3 files changed, 51 insertions(+), 64 deletions(-) diff --git a/src/bonsai/bonsai/bim/prop.py b/src/bonsai/bonsai/bim/prop.py index 8e6b8ed7c8..4e93c1c690 100644 --- a/src/bonsai/bonsai/bim/prop.py +++ b/src/bonsai/bonsai/bim/prop.py @@ -627,8 +627,8 @@ class BIMProperties(PropertyGroup): items=[ ("NONE", "None", ""), ("GRAM", "Gram", "Grams"), - ("KILO/KILOGRAM", "Kilogram", "Kilograms"), - ("MEGA/TONNE", "Tonne", "Metric Tons"), + ("KILO/GRAM", "Kilogram", "Kilograms"), + ("MEGA/GRAM", "Tonne", "Metric Tons"), ("pound", "Pound", "Pounds"), ("ounce", "Ounce", "Ounces"), ], diff --git a/src/bonsai/bonsai/tool/unit.py b/src/bonsai/bonsai/tool/unit.py index 823c50bdc3..d7b35e3178 100644 --- a/src/bonsai/bonsai/tool/unit.py +++ b/src/bonsai/bonsai/tool/unit.py @@ -336,11 +336,18 @@ class Unit(bonsai.core.tool.Unit): def get_scene_unit_name(cls, unit_type: UNIT_TYPE) -> str | None: if unit_type == "LENGTHUNIT": name = bpy.context.scene.unit_settings.length_unit - name = {"MILES": "mile", "FEET": "foot", "INCHES": "inch", "THOU": "thou", "ADAPTIVE": "METERS"}.get( - name, name + if name == "ADAPTIVE": + if bpy.context.scene.unit_settings.system == "IMPERIAL": + name = "foot" + else: + name = "METRE" + name = ( + {"MILES": "mile", "FEET": "foot", "INCHES": "inch", "THOU": "thou", "ADAPTIVE": "METERS"} + .get(name, name) + .replace("METERS", "METRE") ) - if len(name) > len("METERS") and name.endswith("METERS"): - return f"{name[:-6]}/METRE" + if len(name) > len("METRE") and name.endswith("METRE"): + return f"{name[:-5]}/METRE" return name bim_props = tool.Blender.get_bim_props() if (name := getattr(bim_props, f"{unit_type[:-4].lower()}_unit")) != "NONE": diff --git a/src/bonsai/test/tool/test_unit.py b/src/bonsai/test/tool/test_unit.py index 6e0e756b67..dcd96c4dea 100644 --- a/src/bonsai/test/tool/test_unit.py +++ b/src/bonsai/test/tool/test_unit.py @@ -131,25 +131,43 @@ class TestGetSceneUnitName(NewFile): assert subject.get_scene_unit_name("AREAUNIT") == "square foot" assert subject.get_scene_unit_name("VOLUMEUNIT") == "cubic inch" + def test_getting_an_si_name(self): + props = tool.Blender.get_bim_props() + bpy.context.scene.unit_settings.system = "METRIC" + bpy.context.scene.unit_settings.length_unit = "METERS" + props.area_unit = "SQUARE_METRE" + props.volume_unit = "CUBIC_METRE" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + assert subject.get_scene_unit_name("AREAUNIT") == "SQUARE_METRE" + assert subject.get_scene_unit_name("VOLUMEUNIT") == "CUBIC_METRE" + bpy.context.scene.unit_settings.length_unit = "MILLIMETERS" + assert subject.get_scene_unit_name("LENGTHUNIT") == "MILLI/METRE" + bpy.context.scene.unit_settings.length_unit = "ADAPTIVE" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + def test_getting_a_name_with_no_unit_system(self): assert bpy.context.scene bpy.context.scene.unit_settings.system = "NONE" - assert subject.get_scene_unit_name("LENGTHUNIT") == "foot" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + bpy.context.scene.unit_settings.length_unit = "ADAPTIVE" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + assert subject.get_scene_unit_name("AREAUNIT") == "SQUARE_METRE" + assert subject.get_scene_unit_name("VOLUMEUNIT") == "CUBIC_METRE" def test_getting_mass_unit_names(self): """Test getting mass unit names for different systems""" assert bpy.context.scene props = tool.Blender.get_bim_props() props.mass_unit = "GRAM" - assert subject.get_scene_unit_name("MASSUNIT") == "gram" - props.mass_unit = "KILOGRAM" - assert subject.get_scene_unit_name("MASSUNIT") == "kilogram" - props.mass_unit = "POUND" + assert subject.get_scene_unit_name("MASSUNIT") == "GRAM" + props.mass_unit = "KILO/GRAM" + assert subject.get_scene_unit_name("MASSUNIT") == "KILO/GRAM" + props.mass_unit = "MEGA/GRAM" + assert subject.get_scene_unit_name("MASSUNIT") == "MEGA/GRAM" + props.mass_unit = "pound" assert subject.get_scene_unit_name("MASSUNIT") == "pound" - props.mass_unit = "OUNCE" + props.mass_unit = "ounce" assert subject.get_scene_unit_name("MASSUNIT") == "ounce" - props.mass_unit = "TONNE" - assert subject.get_scene_unit_name("MASSUNIT") == "tonne" def test_getting_time_unit_names(self): """Test getting time unit names for different systems""" @@ -157,64 +175,26 @@ class TestGetSceneUnitName(NewFile): props = tool.Blender.get_bim_props() props.time_unit = "SECOND" - assert subject.get_scene_unit_name("TIMEUNIT") == "second" - props.time_unit = "MINUTE" + assert subject.get_scene_unit_name("TIMEUNIT") == "SECOND" + props.time_unit = "minute" assert subject.get_scene_unit_name("TIMEUNIT") == "minute" - props.time_unit = "HOUR" - assert subject.get_scene_unit_name("TIMEUNIT") == "hour" - props.time_unit = "DAY" - assert subject.get_scene_unit_name("TIMEUNIT") == "day" + props.time_unit = "NONE" + assert not subject.get_scene_unit_name("TIMEUNIT") class TestGetSceneUnitSIPrefix: def test_run(self): assert bpy.context.scene - bpy.context.scene.unit_settings.system = "METRIC" - bpy.context.scene.unit_settings.length_unit = "METERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") is None - bpy.context.scene.unit_settings.length_unit = "MICROMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "MICRO" - bpy.context.scene.unit_settings.length_unit = "MILLIMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "MILLI" - bpy.context.scene.unit_settings.length_unit = "CENTIMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "CENTI" - bpy.context.scene.unit_settings.length_unit = "KILOMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "KILO" - bpy.context.scene.unit_settings.length_unit = "ADAPTIVE" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") is None - props = tool.Blender.get_bim_props() - props.area_unit = "SQUARE_METRE" - assert subject.get_scene_unit_si_prefix("AREAUNIT") is None - props.area_unit = "MILLI/SQUARE_METRE" - assert subject.get_scene_unit_si_prefix("AREAUNIT") == "MILLI" - props.volume_unit = "CUBIC_METRE" - assert subject.get_scene_unit_si_prefix("VOLUMEUNIT") is None - props.volume_unit = "MILLI/CUBIC_METRE" - assert subject.get_scene_unit_si_prefix("VOLUMEUNIT") == "MILLI" + assert subject.get_scene_unit_si_prefix("METRE") is None + assert subject.get_scene_unit_si_prefix("MICRO/METRE") == "MICRO" + assert subject.get_scene_unit_si_prefix("SQUARE_METRE") is None + assert subject.get_scene_unit_si_prefix("MILLI/SQUARE_METRE") == "MILLI" + assert subject.get_scene_unit_si_prefix("foot") is None def test_mass_and_time_unit_prefixes(self): - assert bpy.context.scene - props = tool.Blender.get_bim_props() - - props.mass_unit = "KILOGRAM" - assert subject.get_scene_unit_si_prefix("MASSUNIT") == "KILO" - props.mass_unit = "GRAM" - assert subject.get_scene_unit_si_prefix("MASSUNIT") is None - props.mass_unit = "POUND" - assert subject.get_scene_unit_si_prefix("MASSUNIT") == "CONVERSION" - props.mass_unit = "OUNCE" - assert subject.get_scene_unit_si_prefix("MASSUNIT") == "CONVERSION" - props.mass_unit = "TONNE" - assert subject.get_scene_unit_si_prefix("MASSUNIT") == "MEGA" - - props.time_unit = "SECOND" - assert subject.get_scene_unit_si_prefix("TIMEUNIT") is None - props.time_unit = "MINUTE" - assert subject.get_scene_unit_si_prefix("TIMEUNIT") == "CONVERSION" - props.time_unit = "HOUR" - assert subject.get_scene_unit_si_prefix("TIMEUNIT") == "CONVERSION" - props.time_unit = "DAY" - assert subject.get_scene_unit_si_prefix("TIMEUNIT") == "CONVERSION" + assert subject.get_scene_unit_si_prefix("KILO/GRAM") == "KILO" + assert subject.get_scene_unit_si_prefix("MEGA/GRAM") == "MEGA" + assert subject.get_scene_unit_si_prefix("GRAM") is None class TestImportUnitAttributes(NewFile): From 2a60f46516bda2ff34439b118392926d7c195db6 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jan 2026 19:13:43 +1100 Subject: [PATCH 079/171] Refactor parse_distance_string into tool classmethod and add tests including e9eca5e behaviour --- .../bonsai/bim/module/drawing/gizmos.py | 3 +- src/bonsai/bonsai/bim/module/spatial/prop.py | 3 +- src/bonsai/bonsai/core/tool.py | 1 - src/bonsai/bonsai/tool/unit.py | 478 +++++++++--------- src/bonsai/test/tool/test_unit.py | 11 + 5 files changed, 252 insertions(+), 244 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/gizmos.py b/src/bonsai/bonsai/bim/module/drawing/gizmos.py index 6624d2010c..a83bd0a46a 100644 --- a/src/bonsai/bonsai/bim/module/drawing/gizmos.py +++ b/src/bonsai/bonsai/bim/module/drawing/gizmos.py @@ -157,7 +157,6 @@ from mathutils.kdtree import KDTree import bonsai.tool as tool from bonsai.bim.module.drawing.shaders import ExtrusionGuidesShader -from bonsai.tool.unit import parse_distance_string SNAP_POINT_SIZE = 10.0 SNAP_POINT_COLOR = (1.0, 0.5, 0.0, 1.0) @@ -1028,7 +1027,7 @@ class NumericInputState: return input_str = self.get_input_string() - is_valid, value = parse_distance_string(input_str) + is_valid, value = tool.Unit.parse_distance_string(input_str) if is_valid: self.parsed_value = value diff --git a/src/bonsai/bonsai/bim/module/spatial/prop.py b/src/bonsai/bonsai/bim/module/spatial/prop.py index 2f12e164fc..18ddc6080d 100644 --- a/src/bonsai/bonsai/bim/module/spatial/prop.py +++ b/src/bonsai/bonsai/bim/module/spatial/prop.py @@ -39,7 +39,6 @@ import bonsai.core.geometry import bonsai.tool as tool from bonsai.bim.module.spatial.data import SpatialDecompositionData from bonsai.bim.prop import ObjProperty -from bonsai.tool.unit import parse_distance_string def get_subelement_class( @@ -52,7 +51,7 @@ def get_subelement_class( def update_elevation(self: "BIMContainer", context: bpy.types.Context) -> None: # Try to parse the input string with unit support first - is_valid, parsed_elevation = parse_distance_string(self.elevation, use_project_unit=True) + is_valid, parsed_elevation = tool.Unit.parse_distance_string(self.elevation, use_project_unit=True) if is_valid: elevation = parsed_elevation diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index c07ac9f483..9d78297c4e 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -1132,7 +1132,6 @@ class Unit: def set_active_unit(cls, unit): pass def get_project_currency_unit(cls): pass def get_currency_name(cls): pass - def add_mass_and_time_units(cls): pass @interface class Voider: diff --git a/src/bonsai/bonsai/tool/unit.py b/src/bonsai/bonsai/tool/unit.py index d7b35e3178..66b56612fe 100644 --- a/src/bonsai/bonsai/tool/unit.py +++ b/src/bonsai/bonsai/tool/unit.py @@ -34,245 +34,6 @@ if TYPE_CHECKING: from bonsai.bim.module.unit.prop import BIMUnitProperties -def parse_distance_string(input_string: str, use_project_unit: bool = True) -> tuple[bool, float]: - """ - Parse a distance string with optional unit suffixes and convert to meters. - - This function parses distance inputs with units (e.g., "5m", "10ft", "3.5cm") - and converts them to meters (SI units) for use in IFC models. - - Supports: - - Metric units: mm, cm, dm, m - - Imperial units: ft/feet ('), in/inches (") - - Arithmetic expressions: +, -, *, / - - Fractions for imperial units (e.g., 1/2") - - Formula mode: values starting with "=" - - :param input_string: The string to parse (e.g., "5m", "10ft", "10'6\"", "3.5cm", "12in") - :param use_project_unit: If True, uses project unit scale; if False, uses Blender unit scale - :return: Tuple (is_valid, value_in_meters) where is_valid indicates successful parsing - and value_in_meters is the converted value in meters - - Examples: - >>> parse_distance_string("5m") - (True, 5.0) - >>> parse_distance_string("30cm") - (True, 0.3) - >>> parse_distance_string("10ft") - (True, 3.048) - >>> parse_distance_string("12in") - (True, 0.3048) - >>> parse_distance_string("5'6\"") - (True, 1.6764) - >>> parse_distance_string("invalid") - (False, 0.0) - """ - - grammar_imperial = r""" - start: (FORMULA dim expr) | dim - dim: imperial - - FORMULA: "=" - - imperial: feet_inches | feet_only | inches_only | plain_number - feet_only: NUMBER (FEET_SYM | FEET_TEXT) - inches_only: inch_value (INCH_SYM | INCH_TEXT) - feet_inches: NUMBER (FEET_SYM | FEET_TEXT) DASH? inch_value (INCH_SYM | INCH_TEXT)? - plain_number: NUMBER - - inch_value: NUMBER fraction | fraction | NUMBER - - fraction: NUMBER "/" NUMBER - - expr: (ADD | SUB) dim | (MUL | DIV) NUMBER - - NUMBER: /-?(?:\d+\.?\d*|\.\d+)/ - FEET_SYM: "'" - FEET_TEXT: "ft" - INCH_SYM: "\"" - INCH_TEXT: "in" - DASH: "-" - ADD: "+" - SUB: "-" - MUL: "*" - DIV: "/" - - %ignore " " - """ - - grammar_metric = r""" - start: FORMULA? dim expr? - dim: metric - - FORMULA: "=" - - metric: NUMBER (MM | CM | DM | M | DEG)? - - expr: (ADD | SUB | MUL | DIV) dim - - NUMBER: /-?(?:\d+\.?\d*|\.\d+)/ - MM: "mm" - CM: "cm" - DM: "dm" - M: "m" - DEG: "°" - ADD: "+" - SUB: "-" - MUL: "*" - DIV: "/" - - %ignore " " - """ - - class InputTransform(Transformer): - def NUMBER(self, n): - return float(n) - - def fraction(self, numbers): - return numbers[0] / numbers[1] - - def inch_value(self, args): - # Can be: NUMBER fraction, fraction, or NUMBER - if len(args) == 2: - # NUMBER fraction (e.g., "9 1/64") - return args[0] + args[1] - else: - # Just fraction or just NUMBER - return args[0] - - def plain_number(self, args): - # A plain number in imperial context is assumed to be feet - feet = args[0] - # Convert feet to meters (1 foot = 0.3048 meters) - return feet * 0.3048 - - def feet_only(self, args): - # args[0] is the number of feet, args[1] is the unit token (we can ignore it) - feet = args[0] - # Convert feet to meters (1 foot = 0.3048 meters) - return feet * 0.3048 - - def inches_only(self, args): - # args[0] is the inch_value, args[1] is the unit token - inches = args[0] - # Convert inches to meters (1 inch = 0.0254 meters) - return inches * 0.0254 - - def feet_inches(self, args): - # Extract feet and inches values - feet = args[0] - # Find the inch_value (it's a number, not a token) - inches = None - for arg in args[1:]: - if isinstance(arg, (int, float)): - inches = arg - break - if inches is None: - inches = 0 - - # If feet is negative, inches should also be negative (subtractive) - if feet < 0: - inches = -inches - - # Convert to meters - total_meters = (feet * 0.3048) + (inches * 0.0254) - return total_meters - - def imperial(self, args): - # Just return the value from the sub-rule (feet_only, inches_only, or feet_inches) - return args[0] - - def metric(self, args): - # args[0] is the NUMBER, args[1] if present is the unit - value = args[0] - if len(args) > 1: - unit = str(args[1]) - # Convert to meters based on unit - if unit == "mm": - value = value / 1000.0 - elif unit == "cm": - value = value / 100.0 - elif unit == "dm": - value = value / 10.0 - elif unit == "m": - value = value # already in meters - elif unit == "°": - value = value # degrees, pass through - # If no unit specified, assume it's already in the project's unit system - return value - - def dim(self, args): - return args[0] - - def expr(self, args): - op = args[0] - value = float(args[1]) - if op == "+": - return lambda x: x + value - elif op == "-": - return lambda x: x - value - elif op == "*": - return lambda x: x * value - elif op == "/": - return lambda x: x / value - - def FORMULA(self, args): - return args[0] - - def start(self, args): - i = 0 - if args[0] == "=": - i += 1 - else: - if len(args) > 1: - raise ValueError("Invalid input.") - dimension = args[i] - if len(args) > i + 1: - expression = args[i + 1] - return expression(dimension) - else: - return dimension - - try: - # Determine unit scale - if use_project_unit and tool.Ifc.get(): - unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - else: - unit_scale = tool.Blender.get_unit_scale() - - # Try to parse with the project's default grammar first - if bpy.context.scene.unit_settings.system == "IMPERIAL": - primary_parser = Lark(grammar_imperial) - fallback_parser = Lark(grammar_metric) - else: - primary_parser = Lark(grammar_metric) - fallback_parser = Lark(grammar_imperial) - - # Try parsing with primary grammar - parse_tree = None - try: - parse_tree = primary_parser.parse(input_string) - except Exception as e: - # If primary fails, try fallback grammar (allows metric in imperial projects and vice versa) - try: - parse_tree = fallback_parser.parse(input_string) - except Exception as e2: - pass - - if parse_tree is None: - return False, 0.0 - - # Transform the parse tree to get the numeric result - transformer = InputTransform() - result = transformer.transform(parse_tree) - result = round(result, 6) - - return True, result - - except Exception as e: - return False, 0.0 - - class Unit(bonsai.core.tool.Unit): UNIT_TYPE = Literal["LENGTHUNIT", "AREAUNIT", "VOLUMEUNIT", "MASSUNIT", "TIMEUNIT"] @@ -300,6 +61,245 @@ class Unit(bonsai.core.tool.Unit): **kwargs, ) + @classmethod + def parse_distance_string(cls, input_string: str, use_project_unit: bool = True) -> tuple[bool, float]: + """ + Parse a distance string with optional unit suffixes and convert to meters. + + This function parses distance inputs with units (e.g., "5m", "10ft", "3.5cm") + and converts them to meters (SI units) for use in IFC models. + + Supports: + - Metric units: mm, cm, dm, m + - Imperial units: ft/feet ('), in/inches (") + - Arithmetic expressions: +, -, *, / + - Fractions for imperial units (e.g., 1/2") + - Formula mode: values starting with "=" + + :param input_string: The string to parse (e.g., "5m", "10ft", "10'6\"", "3.5cm", "12in") + :param use_project_unit: If True, uses project unit scale; if False, uses Blender unit scale + :return: Tuple (is_valid, value_in_meters) where is_valid indicates successful parsing + and value_in_meters is the converted value in meters + + Examples: + >>> parse_distance_string("5m") + (True, 5.0) + >>> parse_distance_string("30cm") + (True, 0.3) + >>> parse_distance_string("10ft") + (True, 3.048) + >>> parse_distance_string("12in") + (True, 0.3048) + >>> parse_distance_string("5'6\"") + (True, 1.6764) + >>> parse_distance_string("invalid") + (False, 0.0) + """ + + grammar_imperial = r""" + start: (FORMULA dim expr) | dim + dim: imperial + + FORMULA: "=" + + imperial: feet_inches | feet_only | inches_only | plain_number + feet_only: NUMBER (FEET_SYM | FEET_TEXT) + inches_only: inch_value (INCH_SYM | INCH_TEXT) + feet_inches: NUMBER (FEET_SYM | FEET_TEXT) DASH? inch_value (INCH_SYM | INCH_TEXT)? + plain_number: NUMBER + + inch_value: NUMBER fraction | fraction | NUMBER + + fraction: NUMBER "/" NUMBER + + expr: (ADD | SUB) dim | (MUL | DIV) NUMBER + + NUMBER: /-?(?:\d+\.?\d*|\.\d+)/ + FEET_SYM: "'" + FEET_TEXT: "ft" + INCH_SYM: "\"" + INCH_TEXT: "in" + DASH: "-" + ADD: "+" + SUB: "-" + MUL: "*" + DIV: "/" + + %ignore " " + """ + + grammar_metric = r""" + start: FORMULA? dim expr? + dim: metric + + FORMULA: "=" + + metric: NUMBER (MM | CM | DM | M | DEG)? + + expr: (ADD | SUB | MUL | DIV) dim + + NUMBER: /-?(?:\d+\.?\d*|\.\d+)/ + MM: "mm" + CM: "cm" + DM: "dm" + M: "m" + DEG: "°" + ADD: "+" + SUB: "-" + MUL: "*" + DIV: "/" + + %ignore " " + """ + + class InputTransform(Transformer): + def NUMBER(self, n): + return float(n) + + def fraction(self, numbers): + return numbers[0] / numbers[1] + + def inch_value(self, args): + # Can be: NUMBER fraction, fraction, or NUMBER + if len(args) == 2: + # NUMBER fraction (e.g., "9 1/64") + return args[0] + args[1] + else: + # Just fraction or just NUMBER + return args[0] + + def plain_number(self, args): + # A plain number in imperial context is assumed to be feet + feet = args[0] + # Convert feet to meters (1 foot = 0.3048 meters) + return feet * 0.3048 + + def feet_only(self, args): + # args[0] is the number of feet, args[1] is the unit token (we can ignore it) + feet = args[0] + # Convert feet to meters (1 foot = 0.3048 meters) + return feet * 0.3048 + + def inches_only(self, args): + # args[0] is the inch_value, args[1] is the unit token + inches = args[0] + # Convert inches to meters (1 inch = 0.0254 meters) + return inches * 0.0254 + + def feet_inches(self, args): + # Extract feet and inches values + feet = args[0] + # Find the inch_value (it's a number, not a token) + inches = None + for arg in args[1:]: + if isinstance(arg, (int, float)): + inches = arg + break + if inches is None: + inches = 0 + + # If feet is negative, inches should also be negative (subtractive) + if feet < 0: + inches = -inches + + # Convert to meters + total_meters = (feet * 0.3048) + (inches * 0.0254) + return total_meters + + def imperial(self, args): + # Just return the value from the sub-rule (feet_only, inches_only, or feet_inches) + return args[0] + + def metric(self, args): + # args[0] is the NUMBER, args[1] if present is the unit + value = args[0] + if len(args) > 1: + unit = str(args[1]) + # Convert to meters based on unit + if unit == "mm": + value = value / 1000.0 + elif unit == "cm": + value = value / 100.0 + elif unit == "dm": + value = value / 10.0 + elif unit == "m": + value = value # already in meters + elif unit == "°": + value = value # degrees, pass through + # If no unit specified, assume it's already in the project's unit system + return value + + def dim(self, args): + return args[0] + + def expr(self, args): + op = args[0] + value = float(args[1]) + if op == "+": + return lambda x: x + value + elif op == "-": + return lambda x: x - value + elif op == "*": + return lambda x: x * value + elif op == "/": + return lambda x: x / value + + def FORMULA(self, args): + return args[0] + + def start(self, args): + i = 0 + if args[0] == "=": + i += 1 + else: + if len(args) > 1: + raise ValueError("Invalid input.") + dimension = args[i] + if len(args) > i + 1: + expression = args[i + 1] + return expression(dimension) + else: + return dimension + + try: + # Determine unit scale + if use_project_unit and tool.Ifc.get(): + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + else: + unit_scale = tool.Blender.get_unit_scale() + + # Try to parse with the project's default grammar first + if bpy.context.scene.unit_settings.system == "IMPERIAL": + primary_parser = Lark(grammar_imperial) + fallback_parser = Lark(grammar_metric) + else: + primary_parser = Lark(grammar_metric) + fallback_parser = Lark(grammar_imperial) + + # Try parsing with primary grammar + parse_tree = None + try: + parse_tree = primary_parser.parse(input_string) + except Exception as e: + # If primary fails, try fallback grammar (allows metric in imperial projects and vice versa) + try: + parse_tree = fallback_parser.parse(input_string) + except Exception as e2: + pass + + if parse_tree is None: + return False, 0.0 + + # Transform the parse tree to get the numeric result + transformer = InputTransform() + result = transformer.transform(parse_tree) + result = round(result, 6) + + return True, result + + except Exception as e: + return False, 0.0 + @classmethod def get_unit_props(cls) -> BIMUnitProperties: return bpy.context.scene.BIMUnitProperties diff --git a/src/bonsai/test/tool/test_unit.py b/src/bonsai/test/tool/test_unit.py index dcd96c4dea..df3acc1b3e 100644 --- a/src/bonsai/test/tool/test_unit.py +++ b/src/bonsai/test/tool/test_unit.py @@ -33,6 +33,17 @@ class TestImplementsTool(NewFile): assert isinstance(subject(), bonsai.core.tool.Unit) +class TestParseDistanceString(NewFile): + def test_run(self): + assert subject.parse_distance_string("5m") == (True, 5.0) + assert subject.parse_distance_string("30cm") == (True, 0.3) + assert subject.parse_distance_string("10ft") == (True, 3.048) + assert subject.parse_distance_string("12in") == (True, 0.3048) + assert subject.parse_distance_string("5'6\"") == (True, 1.6764) + assert subject.parse_distance_string("-5'6\"") == (True, -1.6764) + assert subject.parse_distance_string("invalid") == (False, 0.0) + + class TestClearActiveUnit(NewFile): def test_run(self): props = tool.Unit.get_unit_props() From bbf8fc2b645b6b46d97589b56aacf0d7c47806a6 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jan 2026 19:27:34 +1100 Subject: [PATCH 080/171] Revert "feat: auto-assign containers to root aggregates and organize parts in outliner" This reverts commit 9adbd4718103b1a9fef2737a3a798bb66daa1ebc. --- .../bonsai/bim/module/geometry/operator.py | 33 ++------ .../bonsai/bim/module/spatial/operator.py | 81 ++++--------------- 2 files changed, 20 insertions(+), 94 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index 97c5bb88ed..15f3052935 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -1725,40 +1725,19 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): # Only assign container if element is not already aggregated under another element # Aggregated elements should not be in the spatial structure if not ifcopenshell.util.element.get_aggregate(element): - container = original_data[matching_group_id][index]["Container"] bonsai.core.spatial.assign_container( tool.Ifc, tool.Collector, tool.Spatial, - container=container, + container=original_data[matching_group_id][index]["Container"], element_obj=obj, ) + for part in ifcopenshell.util.element.get_parts(tool.Ifc.get_entity(obj)): + tool.Collector.assign(tool.Ifc.get_object(part)) - # Get the container's collection for moving parts in the outliner - container_obj = tool.Ifc.get_object(container) - container_collection = container_obj.BIMObjectProperties.collection if container_obj else None - - # Move all parts to the container's collection in the outliner - if container_collection: - for part in ifcopenshell.util.element.get_parts(element): - part_obj = tool.Ifc.get_object(part) - if part_obj: - # Remove from all previous collections - for col in part_obj.users_collection[:]: - col.objects.unlink(part_obj) - - # Link to container collection - if part_obj.name not in container_collection.objects: - container_collection.objects.link(part_obj) - - # Recursively handle nested parts - for nested_part in ifcopenshell.util.element.get_parts(part): - nested_part_obj = tool.Ifc.get_object(nested_part) - if nested_part_obj: - for col in nested_part_obj.users_collection[:]: - col.objects.unlink(nested_part_obj) - if nested_part_obj.name not in container_collection.objects: - container_collection.objects.link(nested_part_obj) + assignments = original_data[matching_group_id][index]["Assignment"] + if assignments: + assign_to_annotations(obj, assignments) else: try: obj.name = original_data[matching_group_id][index]["Name"] diff --git a/src/bonsai/bonsai/bim/module/spatial/operator.py b/src/bonsai/bonsai/bim/module/spatial/operator.py index 8e88f64cee..18fc35c1c9 100644 --- a/src/bonsai/bonsai/bim/module/spatial/operator.py +++ b/src/bonsai/bonsai/bim/module/spatial/operator.py @@ -177,84 +177,31 @@ class AssignContainer(bpy.types.Operator, tool.Ifc.Operator): else: return - def get_root_aggregate(element): - """Traverse up the aggregate hierarchy to find the top-most aggregate""" - current = element - root = None - while aggregate := ifcopenshell.util.element.get_aggregate(current): - root = aggregate - current = aggregate - return root - - def get_all_parts_recursive(element): - """Recursively get all parts of an aggregate""" - parts = [] - for part in ifcopenshell.util.element.get_parts(element): - parts.append(part) - # Recursively get nested parts - parts.extend(get_all_parts_recursive(part)) - return parts - objs: list[bpy.types.Object] = [] - processed_elements = set() # Track elements we've already handled (by IFC ID) - promoted_parts = 0 # Count how many parts were promoted to their root aggregate - + # In IFC element can be either contained of aggregated, + # tehrefore we skip aggregated elements here to prevent confusion. + # Can't handle it in `poll` since user might just select bunch of elements + # and try to assign a container to them + # and excluding aggregates because of the `poll` failing might get awkward. + skipped_aggregates = 0 for obj in tool.Blender.get_selected_objects(): if not (element := tool.Ifc.get_entity(obj)): continue - - # Check if element is part of an aggregate (at any level) - if root_aggregate := get_root_aggregate(element): - # Skip if we've already processed this root aggregate - if root_aggregate.id() in processed_elements: - continue - - # Get the root aggregate object and add it instead - if root_aggregate_obj := tool.Ifc.get_object(root_aggregate): - objs.append(root_aggregate_obj) - processed_elements.add(root_aggregate.id()) - if root_aggregate != element: # Only count as promoted if different from selected - promoted_parts += 1 - else: - # Element is not part of any aggregate - if element.id() not in processed_elements: - objs.append(obj) - processed_elements.add(element.id()) - - # Get the container's collection - container_obj = tool.Ifc.get_object(container) - container_collection = container_obj.BIMObjectProperties.collection if container_obj else None + if ifcopenshell.util.element.get_aggregate(element): + skipped_aggregates += 1 + continue + objs.append(obj) for element_obj in objs: - element = tool.Ifc.get_entity(element_obj) - - # Only assign container to the ROOT aggregate (this updates IFC relationships) if self.remove_from_other_containers: for col in element_obj.users_collection[:]: col.objects.unlink(element_obj) core.assign_container(tool.Ifc, tool.Collector, tool.Spatial, container=container, element_obj=element_obj) - # For parts, only move them in Blender collections (don't change IFC relationships) - if container_collection: - all_parts = get_all_parts_recursive(element) - for part in all_parts: - if part_obj := tool.Ifc.get_object(part): - # Always remove from ALL previous collections when moving to new container - for col in part_obj.users_collection[:]: - col.objects.unlink(part_obj) - - # Link to new container collection (Blender-only, no IFC change) - if part_obj.name not in container_collection.objects: - container_collection.objects.link(part_obj) - - # Disable editing mode for all selected objects - for obj in tool.Blender.get_selected_objects(): - core.disable_editing_container(tool.Spatial, obj=obj) - - promoted_msg = "" - if promoted_parts: - promoted_msg = f" {promoted_parts} nested parts promoted to their root aggregates." - self.report({"INFO"}, f"{len(objs)} elements assigned.{promoted_msg}") + aggregates_msg = "" + if skipped_aggregates: + aggregates_msg = f" {skipped_aggregates} aggregated elements skipped." + self.report({"INFO"}, f"{len(objs)} elements assigned.{aggregates_msg}") class EnableEditingContainer(bpy.types.Operator): From 8a32d7bea0fca29699688cbed53e2eb8a0318e14 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Tue, 27 Jan 2026 18:05:19 +0100 Subject: [PATCH 081/171] Add EstablishPathDirection operator and update UI to integrate it --- .../bonsai/bim/module/system/__init__.py | 1 + .../bonsai/bim/module/system/operator.py | 50 +++++++++++++++++++ src/bonsai/bonsai/bim/module/system/ui.py | 4 +- 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/system/__init__.py b/src/bonsai/bonsai/bim/module/system/__init__.py index d08046ee8f..36901100f6 100644 --- a/src/bonsai/bonsai/bim/module/system/__init__.py +++ b/src/bonsai/bonsai/bim/module/system/__init__.py @@ -37,6 +37,7 @@ classes = ( operator.EditZone, operator.EnableEditingSystem, operator.EnableEditingZone, + operator.EstablishPathDirection, operator.HidePorts, operator.LoadSystems, operator.LoadZones, diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 5fecd05ffb..18e8d91d88 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -479,6 +479,56 @@ class CycleFlowDirection(bpy.types.Operator, tool.Ifc.Operator): return {"FINISHED"} +class EstablishPathDirection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.establish_path_direction" + bl_label = "Establish Path Direction" + bl_description = "Propagates flow direction through connected flow segments with two ports" + bl_options = {"REGISTER", "UNDO"} + port_id: bpy.props.IntProperty() + + def _execute(self, context): + connected_port = tool.Ifc.get().by_id(self.port_id) + + + if not connected_port or not connected_port.is_a("IfcDistributionPort"): + self.report({"ERROR"}, "Invalid port specified.") + return {"CANCELLED"} + + direction_map = { + "SOURCE": "SINK", + "SINK": "SOURCE", + "SOURCEANDSINK": "SOURCEANDSINK", + "NOTDEFINED": "NOTDEFINED", + } + next_element = tool.System.get_port_relating_element(connected_port) + ports = tool.System.get_ports(next_element) + segments_processed = 0 + while (len(ports) == 2): + if ports[0].id() == connected_port.id(): + other_port = ports[1] + else: + other_port = ports[0] + + new_direction = direction_map.get(connected_port.FlowDirection, "NOTDEFINED") + other_port.FlowDirection = new_direction + segments_processed += 1 + + connected_port = tool.System.get_connected_port(other_port) + if not connected_port: + break + connected_port.FlowDirection = direction_map.get(other_port.FlowDirection, "NOTDEFINED") + next_element = tool.System.get_port_relating_element(connected_port) + + if not next_element.is_a("IfcFlowSegment"): + print(f"DEBUG: next_element is not IfcFlowSegment, stopping") + break + + ports = tool.System.get_ports(next_element) + + self.report({"INFO"}, f"Established path direction through {segments_processed} flow segment(s).") + return {"FINISHED"} + + class LoadZones(bpy.types.Operator): bl_idname = "bim.load_zones" bl_label = "Load Zones" diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index d621adc02b..a3d73c10f6 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -296,7 +296,7 @@ class BIM_PT_port(Panel): element = tool.Ifc.get_entity(context.active_object) row = layout.row(align=True) - cols = [row.column(align=True) for i in range(9)] + cols = [row.column(align=True) for i in range(10)] cols[3].scale_x = 1.0 cols[6].scale_x = 1.0 cols[8].scale_x = 1.33 @@ -333,12 +333,14 @@ class BIM_PT_port(Panel): else: cols[7].label(text="", icon="BLANK1") cols[8].label(text="") + cols[9].operator("bim.establish_path_direction", text="", icon="CON_FOLLOWPATH").port_id = connected_port.id() else: cols[4].label(text="", icon="BLANK1") cols[5].label(text="", icon="BLANK1") cols[6].label(text="Port is disconnected") cols[7].label(text="", icon="BLANK1") cols[8].label(text="") + cols[9].label(text="", icon="BLANK1") class BIM_PT_flow_controls(Panel): From 24a58cba405ddca878ff30d3a35ac0f285b5e7a1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 09:14:40 +1100 Subject: [PATCH 082/171] Remove functionality to unlink from non-IFC collections This is a cool idea, but users have all sorts of Blender collection strategies and I think it's a good idea for Bonsai code to just touch Bonsai's stuff and leave everything else. Separate functionality can be built for non-Bonsai workflows and preferrably in a more discoverable way than in individual Bonsai features. --- src/bonsai/bonsai/bim/module/spatial/operator.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/spatial/operator.py b/src/bonsai/bonsai/bim/module/spatial/operator.py index 18fc35c1c9..04617cc025 100644 --- a/src/bonsai/bonsai/bim/module/spatial/operator.py +++ b/src/bonsai/bonsai/bim/module/spatial/operator.py @@ -153,16 +153,10 @@ class AssignContainer(bpy.types.Operator, tool.Ifc.Operator): "Assign the selected objects to the container selected in Spatial Manager.\n\n" "All elements-parts of an aggregate will be skipped.\n" "To assign a container, they should be unassigned from an aggregate first.\n\n" - "This will also move objects to the container collection in the outliner.\n" - "ALT + Click to ensure objects are only linked in the container collection" + "This will also move objects to the container collection in the outliner." ) bl_options = {"REGISTER", "UNDO"} container: bpy.props.IntProperty(options={"SKIP_SAVE"}) - remove_from_other_containers: bpy.props.BoolProperty(default=False, options={"SKIP_SAVE"}) - - def invoke(self, context, event): - self.remove_from_other_containers = event.alt - return self.execute(context) def _execute(self, context): if self.container: @@ -193,9 +187,6 @@ class AssignContainer(bpy.types.Operator, tool.Ifc.Operator): objs.append(obj) for element_obj in objs: - if self.remove_from_other_containers: - for col in element_obj.users_collection[:]: - col.objects.unlink(element_obj) core.assign_container(tool.Ifc, tool.Collector, tool.Spatial, container=container, element_obj=element_obj) aggregates_msg = "" From 35ae1e927da71bd0a116675e719cba53ad05f399 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 17:49:15 +1100 Subject: [PATCH 083/171] Fix missing model prophet in core test bootstrap --- src/bonsai/test/core/bootstrap.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/bonsai/test/core/bootstrap.py b/src/bonsai/test/core/bootstrap.py index 3cf7589420..057ee9ffab 100644 --- a/src/bonsai/test/core/bootstrap.py +++ b/src/bonsai/test/core/bootstrap.py @@ -137,6 +137,13 @@ def misc(): prophet.verify() +@pytest.fixture +def model(): + prophet = Prophecy(bonsai.core.tool.Model) + yield prophet + prophet.verify() + + @pytest.fixture def nest(): prophet = Prophecy(bonsai.core.tool.Nest) From 79fa47fc2fa8a2e4b9d961c6c386e4ea23f2ed6d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 17:49:31 +1100 Subject: [PATCH 084/171] Allow specifying MODULE in make test-core for convenience --- src/bonsai/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 5b484f9942..68433466bd 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -336,7 +336,11 @@ test: .PHONY: test-core test-core: +ifndef MODULE pytest -p no:pytest-blender test/core +else + pytest -p no:pytest-blender test/core/test_${MODULE}.py +endif .PHONY: test-bim test-bim: From ff35666ad9284a9259c887c687fe3d418e793b86 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 18:00:04 +1100 Subject: [PATCH 085/171] Reimplement feature to reassign inherited containers if you select a child element This reimplements @theoryshaw 's commit 9adbd4 but has a few upgrades: - Considers all parent / child relationships, not just aggregates - Puts business logic in core where it belongs and tool code in tool - Uses existing utils where possible like get_decomposition - Does not use name based collection checking which is fragile - Reuses tool.Collector - Makes container assignment handle the API's capability to do things in bulk instead of one by one in a loop, so it's faster - Tests --- .../bonsai/bim/module/aggregate/operator.py | 2 +- .../bonsai/bim/module/geometry/operator.py | 2 +- src/bonsai/bonsai/bim/module/model/product.py | 4 +-- .../bonsai/bim/module/spatial/operator.py | 25 ++-------------- src/bonsai/bonsai/bim/module/spatial/prop.py | 4 +-- src/bonsai/bonsai/core/spatial.py | 25 ++++++++++------ src/bonsai/bonsai/core/tool.py | 4 ++- src/bonsai/bonsai/tool/spatial.py | 26 +++++++++++++---- src/bonsai/test/core/test_spatial.py | 27 +++++++++-------- src/bonsai/test/tool/test_spatial.py | 29 ++++--------------- 10 files changed, 70 insertions(+), 78 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/aggregate/operator.py b/src/bonsai/bonsai/bim/module/aggregate/operator.py index be6272c3ab..e9f23afece 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/operator.py +++ b/src/bonsai/bonsai/bim/module/aggregate/operator.py @@ -224,7 +224,7 @@ class BIM_OT_add_aggregate(bpy.types.Operator, tool.Ifc.Operator): tool.Collector, tool.Spatial, container=current_container, - element_obj=aggregate, + objs=[aggregate], ) core.assign_object(tool.Ifc, tool.Aggregate, tool.Collector, relating_obj=aggregate, related_obj=obj) diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index 15f3052935..fbd694d219 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -1730,7 +1730,7 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): tool.Collector, tool.Spatial, container=original_data[matching_group_id][index]["Container"], - element_obj=obj, + objs=[obj], ) for part in ifcopenshell.util.element.get_parts(tool.Ifc.get_entity(obj)): tool.Collector.assign(tool.Ifc.get_object(part)) diff --git a/src/bonsai/bonsai/bim/module/model/product.py b/src/bonsai/bonsai/bim/module/model/product.py index 8ca5712116..012cba4889 100644 --- a/src/bonsai/bonsai/bim/module/model/product.py +++ b/src/bonsai/bonsai/bim/module/model/product.py @@ -470,7 +470,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): parent = ifcopenshell.util.element.get_container(building_element) if parent: bonsai.core.spatial.assign_container( - tool.Ifc, tool.Collector, tool.Spatial, container=parent, element_obj=obj + tool.Ifc, tool.Collector, tool.Spatial, container=parent, objs=[obj] ) # set occurrences properties for the types defined with modifiers @@ -493,7 +493,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): else: if self.container_obj: bonsai.core.spatial.assign_container( - tool.Ifc, tool.Collector, tool.Spatial, container=self.container, element_obj=obj + tool.Ifc, tool.Collector, tool.Spatial, container=self.container, objs=[obj] ) if props.rl_mode == "BOTTOM": obj.location.z = self.container_obj.location.z - tool.Blender.get_object_bounding_box(obj)["min_z"] diff --git a/src/bonsai/bonsai/bim/module/spatial/operator.py b/src/bonsai/bonsai/bim/module/spatial/operator.py index 04617cc025..23c0c28335 100644 --- a/src/bonsai/bonsai/bim/module/spatial/operator.py +++ b/src/bonsai/bonsai/bim/module/spatial/operator.py @@ -171,28 +171,9 @@ class AssignContainer(bpy.types.Operator, tool.Ifc.Operator): else: return - objs: list[bpy.types.Object] = [] - # In IFC element can be either contained of aggregated, - # tehrefore we skip aggregated elements here to prevent confusion. - # Can't handle it in `poll` since user might just select bunch of elements - # and try to assign a container to them - # and excluding aggregates because of the `poll` failing might get awkward. - skipped_aggregates = 0 - for obj in tool.Blender.get_selected_objects(): - if not (element := tool.Ifc.get_entity(obj)): - continue - if ifcopenshell.util.element.get_aggregate(element): - skipped_aggregates += 1 - continue - objs.append(obj) - - for element_obj in objs: - core.assign_container(tool.Ifc, tool.Collector, tool.Spatial, container=container, element_obj=element_obj) - - aggregates_msg = "" - if skipped_aggregates: - aggregates_msg = f" {skipped_aggregates} aggregated elements skipped." - self.report({"INFO"}, f"{len(objs)} elements assigned.{aggregates_msg}") + core.assign_container( + tool.Ifc, tool.Collector, tool.Spatial, container=container, objs=tool.Blender.get_selected_objects() + ) class EnableEditingContainer(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/spatial/prop.py b/src/bonsai/bonsai/bim/module/spatial/prop.py index 18ddc6080d..5c48566d08 100644 --- a/src/bonsai/bonsai/bim/module/spatial/prop.py +++ b/src/bonsai/bonsai/bim/module/spatial/prop.py @@ -175,8 +175,8 @@ def poll_container_obj(self: "BIMObjectSpatialProperties", container_obj: bpy.ty obj = self.id_data if ( (container := tool.Ifc.get_entity(container_obj)) - and (tool.Ifc.get_entity(obj)) - and tool.Spatial.can_contain(container, obj) + and (element := tool.Ifc.get_entity(obj)) + and tool.Spatial.can_contain(container, element) ): return True return False diff --git a/src/bonsai/bonsai/core/spatial.py b/src/bonsai/bonsai/core/spatial.py index 4207d033d4..c464f84766 100644 --- a/src/bonsai/bonsai/core/spatial.py +++ b/src/bonsai/bonsai/core/spatial.py @@ -52,15 +52,22 @@ def assign_container( collector: type[tool.Collector], spatial: type[tool.Spatial], container: ifcopenshell.entity_instance, - element_obj: Optional[bpy.types.Object] = None, + objs: Optional[bpy.types.Object] = None, ) -> Union[ifcopenshell.entity_instance, None]: - if not spatial.can_contain(container, element_obj): - return - assert element_obj # Type checker. - rel = ifc.run("spatial.assign_container", products=[ifc.get_entity(element_obj)], relating_structure=container) - spatial.disable_editing(element_obj) - collector.assign(element_obj) - return rel + root_elements = set() + all_elements = set() + for obj in objs: + if not (element := ifc.get_entity(obj)): + continue + root_element = spatial.get_root_element(element) + root_elements.add(root_element) + spatial.disable_editing(obj) + all_elements.add(root_element) + all_elements.update(spatial.get_decomposition(root_element)) + if products := [e for e in root_elements if spatial.can_contain(container, root_element)]: + ifc.run("spatial.assign_container", products=products, relating_structure=container) + for element in all_elements: + collector.assign(ifc.get_object(element)) def enable_editing_container(spatial: type[tool.Spatial], obj: bpy.types.Object) -> None: @@ -98,7 +105,7 @@ def copy_to_container( copied_obj = spatial.duplicate_object_and_data(obj) spatial.set_relative_object_matrix(copied_obj, to_container_obj, matrix) result_objs.append(spatial.run_root_copy_class(obj=copied_obj)) - spatial.run_spatial_assign_container(container=to_container, element_obj=copied_obj) + spatial.run_spatial_assign_container(container=to_container, objs=[copied_obj]) spatial.disable_editing(obj) return result_objs diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index 9d78297c4e..aad79c097e 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -954,12 +954,14 @@ class Spatial: def get_object_matrix(cls, obj): pass def get_relative_object_matrix(cls, target_obj, relative_to_obj): pass def get_selected_product_types(cls): pass + def get_root_element(cls, element): pass + def get_decomposition(cls, element): pass def get_selected_products(cls): pass def import_spatial_decomposition(cls): pass def import_spatial_element(cls, element, level_index): pass def load_contained_elements(cls): pass def run_root_copy_class(cls, obj): pass - def run_spatial_assign_container(cls, container, element_obj): pass + def run_spatial_assign_container(cls, container, objs): pass def run_spatial_import_spatial_decomposition(cls): pass def select_object(cls, obj): pass def select_products(cls, products, unhide=False): pass diff --git a/src/bonsai/bonsai/tool/spatial.py b/src/bonsai/bonsai/tool/spatial.py index 70a92f4cff..d38d895c22 100644 --- a/src/bonsai/bonsai/tool/spatial.py +++ b/src/bonsai/bonsai/tool/spatial.py @@ -74,9 +74,25 @@ class Spatial(bonsai.core.tool.Spatial): return bpy.context.scene.BIMGridProperties @classmethod - def can_contain(cls, container: ifcopenshell.entity_instance, element_obj: Union[bpy.types.Object, None]) -> bool: - if not (element := tool.Ifc.get_entity(element_obj)): - return False + def get_decomposition(cls, element: ifcopenshell.entity_instance) -> list(ifcopenshell.entity_instance): + return ifcopenshell.util.element.get_decomposition(element) + + @classmethod + def get_root_element(cls, element: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance: + while True: + if parent := ( + ifcopenshell.util.element.get_aggregate(element) + or ifcopenshell.util.element.get_nest(element) + or ifcopenshell.util.element.get_filled_void(element) + or ifcopenshell.util.element.get_voided_element(element) + ): + element = parent + else: + break + return element + + @classmethod + def can_contain(cls, container: ifcopenshell.entity_instance, element: ifcopenshell.entity_instance) -> bool: if tool.Ifc.get_schema() == "IFC2X3": if not container.is_a("IfcSpatialStructureElement"): return False @@ -147,10 +163,10 @@ class Spatial(bonsai.core.tool.Spatial): @classmethod def run_spatial_assign_container( - cls, container: ifcopenshell.entity_instance, element_obj: bpy.types.Object + cls, container: ifcopenshell.entity_instance, objs: list[bpy.types.Object] ) -> Union[ifcopenshell.entity_instance, None]: return bonsai.core.spatial.assign_container( - tool.Ifc, tool.Collector, tool.Spatial, container=container, element_obj=element_obj + tool.Ifc, tool.Collector, tool.Spatial, container=container, objs=objs ) @classmethod diff --git a/src/bonsai/test/core/test_spatial.py b/src/bonsai/test/core/test_spatial.py index 0ae9695ea2..ddc6116fdf 100644 --- a/src/bonsai/test/core/test_spatial.py +++ b/src/bonsai/test/core/test_spatial.py @@ -38,16 +38,19 @@ class TestDereferenceStructure: class TestAssignContainer: def test_run(self, ifc, collector, spatial): - spatial.can_contain("container", "element_obj").should_be_called().will_return(True) - ifc.get_entity("element_obj").should_be_called().will_return("element") - ifc.run( - "spatial.assign_container", products=["element"], relating_structure="container" - ).should_be_called().will_return("rel") - spatial.disable_editing("element_obj").should_be_called() - collector.assign("element_obj").should_be_called() - assert ( - subject.assign_container(ifc, collector, spatial, container="container", element_obj="element_obj") == "rel" - ) + ifc.get_entity("obj").should_be_called().will_return("element") + spatial.get_root_element("element").should_be_called().will_return("aggregate") + spatial.get_decomposition("aggregate").should_be_called().will_return(["element", "element2"]) + spatial.can_contain("container", "aggregate").should_be_called().will_return(True) + ifc.run("spatial.assign_container", products=["aggregate"], relating_structure="container").should_be_called() + spatial.disable_editing("obj").should_be_called() + ifc.get_object("aggregate").should_be_called().will_return("aggregate_obj") + ifc.get_object("element").should_be_called().will_return("obj") + ifc.get_object("element2").should_be_called().will_return("obj2") + collector.assign("aggregate_obj").should_be_called() + collector.assign("obj").should_be_called() + collector.assign("obj2").should_be_called() + subject.assign_container(ifc, collector, spatial, container="container", objs=["obj"]) class TestEnableEditingContainer: @@ -82,7 +85,7 @@ class TestCopyToContainer: spatial.duplicate_object_and_data("obj").should_be_called().will_return("new_obj") spatial.set_relative_object_matrix("new_obj", "to_container_obj", "matrix").should_be_called() spatial.run_root_copy_class(obj="new_obj").should_be_called() - spatial.run_spatial_assign_container(container="to_container", element_obj="new_obj").should_be_called() + spatial.run_spatial_assign_container(container="to_container", objs=["new_obj"]).should_be_called() spatial.disable_editing("obj").should_be_called() @@ -97,7 +100,7 @@ class TestCopyToContainer: spatial.duplicate_object_and_data("obj").should_be_called().will_return("new_obj") spatial.set_relative_object_matrix("new_obj", "to_container_obj", "matrix").should_be_called() spatial.run_root_copy_class(obj="new_obj").should_be_called() - spatial.run_spatial_assign_container(container="to_container", element_obj="new_obj").should_be_called() + spatial.run_spatial_assign_container(container="to_container", objs=["new_obj"]).should_be_called() spatial.disable_editing("obj").should_be_called() diff --git a/src/bonsai/test/tool/test_spatial.py b/src/bonsai/test/tool/test_spatial.py index 299e615f2f..005f370b01 100644 --- a/src/bonsai/test/tool/test_spatial.py +++ b/src/bonsai/test/tool/test_spatial.py @@ -43,9 +43,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is True + assert subject.can_contain(structure, element) is True def test_a_spatial_structure_element_can_contain_an_element_ifc2x3(self): ifc = ifcopenshell.file(schema="IFC2X3") @@ -54,9 +52,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is True + assert subject.can_contain(structure, element) is True def test_a_spatial_zone_element_cannot_contain_an_element(self): ifc = ifcopenshell.file() @@ -65,14 +61,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is False - - def test_unlinked_elements_cannot_contain_anything(self): - structure_obj = bpy.data.objects.new("Object", None) - element_obj = bpy.data.objects.new("Object", None) - assert subject.can_contain(structure_obj, element_obj) is False + assert subject.can_contain(structure, element) is False def test_a_non_spatial_element_cannot_contain_anything(self): ifc = ifcopenshell.file() @@ -81,9 +70,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is False + assert subject.can_contain(structure, element) is False def test_a_non_element_cannot_be_contained(self): ifc = ifcopenshell.file() @@ -92,9 +79,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcTask() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is False + assert subject.can_contain(structure, element) is False def test_other_non_elements_that_have_a_contained_in_structure_attribute_can_be_contained(self): ifc = ifcopenshell.file() @@ -103,9 +88,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcGrid() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is True + assert subject.can_contain(structure, element) is True class TestCanReference(NewFile): From 6f78d60c9fd73da9f74729248dba1cd9c98b5d13 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 21:22:19 +1100 Subject: [PATCH 086/171] Minor fix for tests to prevent ambiguous labeling --- src/bonsai/bonsai/bim/module/drawing/operator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 365ff90ee3..8c29bfbf41 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -5056,7 +5056,7 @@ class ShowCategoryHelp(bpy.types.Operator): class AddElementValueRow(bpy.types.Operator): bl_idname = "bim.add_element_value_row" - bl_label = "Add Element" + bl_label = "Add Element Value Row" bl_description = "Add a new element value row" bl_options = {"REGISTER", "UNDO"} From bcff5c7449b920c04d2ec5d0dc38b2e704b4c8f0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 21:49:13 +1100 Subject: [PATCH 087/171] Remove unused tool --- src/bonsai/bonsai/core/tool.py | 10 +++++----- src/bonsai/bonsai/tool/unit.py | 5 ----- src/bonsai/test/tool/test_unit.py | 12 ------------ 3 files changed, 5 insertions(+), 22 deletions(-) diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index aad79c097e..19395fa449 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -951,11 +951,11 @@ class Spatial: def get_active_container(cls): pass def get_container(cls, element): pass def get_decomposed_elements(cls, container, recursive): pass + def get_decomposition(cls, element): pass def get_object_matrix(cls, obj): pass def get_relative_object_matrix(cls, target_obj, relative_to_obj): pass - def get_selected_product_types(cls): pass def get_root_element(cls, element): pass - def get_decomposition(cls, element): pass + def get_selected_product_types(cls): pass def get_selected_products(cls): pass def import_spatial_decomposition(cls): pass def import_spatial_element(cls, element, level_index): pass @@ -1125,15 +1125,15 @@ class Unit: def disable_editing_units(cls): pass def enable_editing_units(cls): pass def export_unit_attributes(cls): pass + def get_currency_name(cls): pass + def get_project_currency_unit(cls): pass def get_scene_unit_name(cls, unit_type): pass def get_scene_unit_si_prefix(cls, name): pass def import_unit_attributes(cls, unit): pass def import_units(cls): pass - def is_scene_unit_metric(cls): pass + def is_si_unit(cls, name): pass def is_unit_class(cls, unit, ifc_class): pass def set_active_unit(cls, unit): pass - def get_project_currency_unit(cls): pass - def get_currency_name(cls): pass @interface class Voider: diff --git a/src/bonsai/bonsai/tool/unit.py b/src/bonsai/bonsai/tool/unit.py index 66b56612fe..1221f28be9 100644 --- a/src/bonsai/bonsai/tool/unit.py +++ b/src/bonsai/bonsai/tool/unit.py @@ -419,11 +419,6 @@ class Unit(bonsai.core.tool.Unit): new.is_assigned = unit in assigned_units new.ifc_class = unit.is_a() - @classmethod - def is_scene_unit_metric(cls) -> bool: - assert bpy.context.scene - return bpy.context.scene.unit_settings.system in ["METRIC", "NONE"] - @classmethod def is_unit_class(cls, unit: ifcopenshell.entity_instance, ifc_class: str) -> bool: return unit.is_a(ifc_class) diff --git a/src/bonsai/test/tool/test_unit.py b/src/bonsai/test/tool/test_unit.py index df3acc1b3e..392650da71 100644 --- a/src/bonsai/test/tool/test_unit.py +++ b/src/bonsai/test/tool/test_unit.py @@ -434,18 +434,6 @@ class TestImportUnits(NewFile): assert second_prop.ifc_class == "IfcSIUnit" -class TestIsSceneUnitMetric(NewFile): - def test_run(self): - assert bpy.context.scene - props = bpy.context.scene.unit_settings - props.system = "METRIC" - assert subject.is_scene_unit_metric() is True - props.system = "IMPERIAL" - assert subject.is_scene_unit_metric() is False - props.system = "NONE" - assert subject.is_scene_unit_metric() is True - - class TestIsUnitClass: def test_run(self): ifc = ifcopenshell.file() From 53e5f847302f32cdbe681a6ccfa9870dd15a116e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 21:49:25 +1100 Subject: [PATCH 088/171] Fix failing core unit tests --- src/bonsai/test/core/test_unit.py | 168 +++++++++++++----------------- 1 file changed, 70 insertions(+), 98 deletions(-) diff --git a/src/bonsai/test/core/test_unit.py b/src/bonsai/test/core/test_unit.py index a7d73c755f..1c328fe84c 100644 --- a/src/bonsai/test/core/test_unit.py +++ b/src/bonsai/test/core/test_unit.py @@ -22,119 +22,91 @@ from test.core.bootstrap import ifc, unit class TestAssignSceneUnits: def test_creating_and_assigning_metric_units(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(True) - unit.get_scene_unit_si_prefix("LENGTHUNIT").should_be_called().will_return("prefix") - unit.get_scene_unit_si_prefix("AREAUNIT").should_be_called().will_return("prefix") - unit.get_scene_unit_si_prefix("VOLUMEUNIT").should_be_called().will_return("prefix") - unit.add_mass_and_time_units().should_be_called().will_return(True) - unit.get_scene_unit_si_prefix("MASSUNIT").should_be_called().will_return("KILO") - unit.get_scene_unit_si_prefix("TIMEUNIT").should_be_called().will_return(None) - - ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="prefix").should_be_called().will_return( + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("area_name") + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("volume_name") + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return("mass_name") + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return("time_name") + unit.is_si_unit("length_name").should_be_called().will_return(True) + unit.is_si_unit("area_name").should_be_called().will_return(True) + unit.is_si_unit("volume_name").should_be_called().will_return(True) + unit.is_si_unit("mass_name").should_be_called().will_return(True) + unit.is_si_unit("time_name").should_be_called().will_return(True) + unit.get_scene_unit_si_prefix("length_name").should_be_called().will_return("length_prefix") + unit.get_scene_unit_si_prefix("area_name").should_be_called().will_return("area_prefix") + unit.get_scene_unit_si_prefix("volume_name").should_be_called().will_return("volume_prefix") + unit.get_scene_unit_si_prefix("mass_name").should_be_called().will_return("mass_prefix") + unit.get_scene_unit_si_prefix("time_name").should_be_called().will_return("time_prefix") + ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="length_prefix").should_be_called().will_return( "lengthunit" ) - ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix="prefix").should_be_called().will_return("areaunit") - ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix="prefix").should_be_called().will_return( + ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix="area_prefix").should_be_called().will_return( + "areaunit" + ) + ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix="volume_prefix").should_be_called().will_return( "volumeunit" ) - ifc.run("unit.add_si_unit", unit_type="MASSUNIT", prefix="KILO").should_be_called().will_return("massunit") - ifc.run("unit.add_si_unit", unit_type="TIMEUNIT", prefix=None).should_be_called().will_return("timeunit") - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - + ifc.run("unit.add_si_unit", unit_type="MASSUNIT", prefix="mass_prefix").should_be_called().will_return( + "massunit" + ) + ifc.run("unit.add_si_unit", unit_type="TIMEUNIT", prefix="time_prefix").should_be_called().will_return( + "timeunit" + ) ifc.run( - "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit", "massunit", "timeunit"] + "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "massunit", "timeunit"] ).should_be_called() subject.assign_scene_units(ifc, unit) - def test_creating_and_assigning_metric_units_without_mass_and_time(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(True) - unit.get_scene_unit_si_prefix("LENGTHUNIT").should_be_called().will_return("CENTI") - unit.get_scene_unit_si_prefix("AREAUNIT").should_be_called().will_return("CENTI") - unit.get_scene_unit_si_prefix("VOLUMEUNIT").should_be_called().will_return("CENTI") - unit.add_mass_and_time_units().should_be_called().will_return(False) - ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="CENTI").should_be_called().will_return("lengthunit") - ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix="CENTI").should_be_called().will_return("areaunit") - ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix="CENTI").should_be_called().will_return("volumeunit") - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - ifc.run("unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit"]).should_be_called() + def test_creating_and_assigning_only_specified_units(self, ifc, unit): + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return(None) + unit.is_si_unit("length_name").should_be_called().will_return(True) + unit.get_scene_unit_si_prefix("length_name").should_be_called().will_return("length_prefix") + ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="length_prefix").should_be_called().will_return( + "lengthunit" + ) + ifc.run("unit.assign_unit", units=["lengthunit"]).should_be_called() subject.assign_scene_units(ifc, unit) def test_creating_and_assigning_imperial_units(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(False) - unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("foot") - unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("square foot") - unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("cubic foot") - unit.add_mass_and_time_units().should_be_called().will_return(True) - unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return("pound") - unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return("SECOND") - - ifc.run("unit.add_conversion_based_unit", name="foot").should_be_called().will_return("lengthunit") - ifc.run("unit.add_conversion_based_unit", name="square foot").should_be_called().will_return("areaunit") - ifc.run("unit.add_conversion_based_unit", name="cubic foot").should_be_called().will_return("volumeunit") - ifc.run("unit.add_conversion_based_unit", name="pound").should_be_called().will_return("massunit") - ifc.run("unit.add_si_unit", unit_type="TIMEUNIT", prefix=None).should_be_called().will_return("timeunit") - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("area_name") + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("volume_name") + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return("mass_name") + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return("time_name") + unit.is_si_unit("length_name").should_be_called().will_return(False) + unit.is_si_unit("area_name").should_be_called().will_return(False) + unit.is_si_unit("volume_name").should_be_called().will_return(False) + unit.is_si_unit("mass_name").should_be_called().will_return(False) + unit.is_si_unit("time_name").should_be_called().will_return(False) + ifc.run("unit.add_conversion_based_unit", name="length_name").should_be_called().will_return("lengthunit") + ifc.run("unit.add_conversion_based_unit", name="area_name").should_be_called().will_return("areaunit") + ifc.run("unit.add_conversion_based_unit", name="volume_name").should_be_called().will_return("volumeunit") + ifc.run("unit.add_conversion_based_unit", name="mass_name").should_be_called().will_return("massunit") + ifc.run("unit.add_conversion_based_unit", name="time_name").should_be_called().will_return("timeunit") ifc.run( - "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit", "massunit", "timeunit"] + "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "massunit", "timeunit"] ).should_be_called() subject.assign_scene_units(ifc, unit) - def test_creating_and_assigning_imperial_units_without_mass_and_time(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(False) - unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("yard") - unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("square yard") - unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("cubic yard") - unit.add_mass_and_time_units().should_be_called().will_return(False) - ifc.run("unit.add_conversion_based_unit", name="yard").should_be_called().will_return("lengthunit") - ifc.run("unit.add_conversion_based_unit", name="square yard").should_be_called().will_return("areaunit") - ifc.run("unit.add_conversion_based_unit", name="cubic yard").should_be_called().will_return("volumeunit") - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - ifc.run("unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit"]).should_be_called() - subject.assign_scene_units(ifc, unit) - - def test_creating_metric_units_with_conversion_based_mass_and_time(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(True) - unit.get_scene_unit_si_prefix("LENGTHUNIT").should_be_called().will_return("MILLI") - unit.get_scene_unit_si_prefix("AREAUNIT").should_be_called().will_return(None) - unit.get_scene_unit_si_prefix("VOLUMEUNIT").should_be_called().will_return(None) - unit.add_mass_and_time_units().should_be_called().will_return(True) - unit.get_scene_unit_si_prefix("MASSUNIT").should_be_called().will_return("CONVERSION") - unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return("tonne") - unit.get_scene_unit_si_prefix("TIMEUNIT").should_be_called().will_return("CONVERSION") - unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return("minute") - - ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="MILLI").should_be_called().will_return("lengthunit") - ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix=None).should_be_called().will_return("areaunit") - ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix=None).should_be_called().will_return("volumeunit") - ifc.run("unit.add_conversion_based_unit", name="tonne").should_be_called().will_return("massunit") - ifc.run("unit.add_conversion_based_unit", name="minute").should_be_called().will_return("timeunit") - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - - ifc.run( - "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit", "massunit", "timeunit"] - ).should_be_called() - subject.assign_scene_units(ifc, unit) - - def test_creating_imperial_units_with_conversion_based_units(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(False) - unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("inch") - unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("square inch") - unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("cubic inch") - unit.add_mass_and_time_units().should_be_called().will_return(True) - unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return("ounce") - unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return("hour") - - ifc.run("unit.add_conversion_based_unit", name="inch").should_be_called().will_return("lengthunit") - ifc.run("unit.add_conversion_based_unit", name="square inch").should_be_called().will_return("areaunit") - ifc.run("unit.add_conversion_based_unit", name="cubic inch").should_be_called().will_return("volumeunit") - ifc.run("unit.add_conversion_based_unit", name="ounce").should_be_called().will_return("massunit") - ifc.run("unit.add_conversion_based_unit", name="hour").should_be_called().will_return("timeunit") - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - - ifc.run( - "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit", "massunit", "timeunit"] - ).should_be_called() + def test_creating_both_metric_and_imperial_units(self, ifc, unit): + # I know British doctors measure with stones so... + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("area_name") + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return(None) + unit.is_si_unit("length_name").should_be_called().will_return(True) + unit.is_si_unit("area_name").should_be_called().will_return(False) + unit.get_scene_unit_si_prefix("length_name").should_be_called().will_return("length_prefix") + ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="length_prefix").should_be_called().will_return( + "lengthunit" + ) + ifc.run("unit.add_conversion_based_unit", name="area_name").should_be_called().will_return("areaunit") + ifc.run("unit.assign_unit", units=["lengthunit", "areaunit"]).should_be_called() subject.assign_scene_units(ifc, unit) From e76c2a70e6c729f7424f2f3be07bcbcc1b15d2d4 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 23:18:57 +1100 Subject: [PATCH 089/171] Add tests for aggregate containment changing --- src/bonsai/test/bim/feature/spatial.feature | 44 +++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/bonsai/test/bim/feature/spatial.feature b/src/bonsai/test/bim/feature/spatial.feature index 2b3020ea23..3ed7a80b94 100644 --- a/src/bonsai/test/bim/feature/spatial.feature +++ b/src/bonsai/test/bim/feature/spatial.feature @@ -74,6 +74,50 @@ Scenario: Assign container When I click "CHECKMARK" Then the object "IfcWall/Cube" is in the collection "IfcSite/My Site" +Scenario: Assign container - assign an aggregate which also affects children + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcWall" + And I click "Assign IFC Class" + And the object "IfcWall/Cube" is selected + When I press "bim.add_aggregate" + Then the object "IfcElementAssembly/Default_Name" exists + And the object "IfcElementAssembly/Default_Name" is contained in object "IfcBuildingStorey/My Storey" + When I look at the "Spatial Decomposition" panel + And I select the "My Site" item in the "BIM_UL_containers_manager" list + And I click "Set Default" + And the object "IfcWall/Cube" is selected + And I look at the "Spatial Container" panel + And I click "GREASEPENCIL" + And I click "CHECKMARK" + Then the object "IfcWall/Cube" is in the collection "IfcSite/My Site" + And the object "IfcElementAssembly/Default_Name" is in the collection "IfcSite/My Site" + +Scenario: Assign container - assign a child which also affects parents + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcWall" + And I click "Assign IFC Class" + And the object "IfcWall/Cube" is selected + When I press "bim.add_aggregate" + Then the object "IfcElementAssembly/Default_Name" exists + And the object "IfcElementAssembly/Default_Name" is contained in object "IfcBuildingStorey/My Storey" + When I look at the "Spatial Decomposition" panel + And I select the "My Site" item in the "BIM_UL_containers_manager" list + And I click "Set Default" + And the object "IfcElementAssembly/Default_Name" is selected + And I look at the "Spatial Container" panel + And I click "GREASEPENCIL" + And I click "CHECKMARK" + Then the object "IfcWall/Cube" is in the collection "IfcSite/My Site" + And the object "IfcElementAssembly/Default_Name" is in the collection "IfcSite/My Site" + Scenario: Copy to container Given an empty IFC project And I add a cube From 6cfb6d74fee3dbcaf4462fed2f6039b9a4afbb20 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 23:25:35 +1100 Subject: [PATCH 090/171] Revert "fix #7559: DirectionSense works again." This reverts commit d79524b087fb7e4099584f4cbebe3e8e8eb46457. --- src/bonsai/bonsai/bim/module/model/slab.py | 88 +++++++++++----- src/bonsai/bonsai/tool/loader.py | 111 ++++----------------- 2 files changed, 81 insertions(+), 118 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index 509d24a60c..caf389165b 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -231,17 +231,16 @@ class DumbSlabPlaner: for inverse in tool.Ifc.get().get_inverse(layer_set): if not inverse.is_a("IfcMaterialLayerSetUsage") or inverse.LayerSetDirection != "AXIS3": continue - if tool.Ifc.get().schema == "IFC2X3": for rel in tool.Ifc.get().get_inverse(inverse): if not rel.is_a("IfcRelAssociatesMaterial"): continue for element in rel.RelatedObjects: - self.change_thickness(element, total_thickness, preserve_offset=True) + self.change_thickness(element, total_thickness) else: for rel in inverse.AssociatedTo: for element in rel.RelatedObjects: - self.change_thickness(element, total_thickness, preserve_offset=True) + self.change_thickness(element, total_thickness) def regenerate_from_occurence(self, element, material_set_usage): self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) @@ -251,12 +250,9 @@ class DumbSlabPlaner: return self.change_thickness(element, total_thickness) - def change_thickness( - self, element: ifcopenshell.entity_instance, thickness: float, preserve_offset: bool = False - ) -> None: + def change_thickness(self, element: ifcopenshell.entity_instance, thickness: float) -> None: if tool.Model.get_usage_type(element) != "LAYER3": return - layer_params = tool.Model.get_material_layer_parameters(element) ifc_file = tool.Ifc.get() body_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") @@ -282,40 +278,79 @@ class DumbSlabPlaner: cos_angle = direction_ratios.normalized().dot(Vector((0, 0, 1))) extrusion_angle = acos(min(max(cos_angle, -1), 1)) - # Only apply 1/cos factor when there's actual extrusion slope + # FIX: Only apply 1/cos factor when there's actual extrusion slope if extrusion_angle > 1e-6: perpendicular_depth = thickness * abs(1 / cos(extrusion_angle)) - perpendicular_offset = layer_offset * abs(1 / cos(extrusion_angle)) + perpendicular_offset = layer_offset * abs(1 / cos(extrusion_angle)) / self.unit_scale else: perpendicular_depth = thickness - perpendicular_offset = layer_offset + perpendicular_offset = layer_offset / self.unit_scale + # Check if direction sense needs to be applied + # This should only happen if explicitly requested, not automatically + if layer_params.get("apply_direction_sense", False): + # Store current direction before potential change + old_direction = direction_ratios.copy() + + # Apply direction sense logic + existing_x_angle = extrusion_angle + if (abs(existing_x_angle) < (pi / 2) and direction_ratios.z > 0) or ( + abs(existing_x_angle) > (pi / 2) and direction_ratios.z < 0 + ): + if layer_params["direction_sense"] == "NEGATIVE": + direction_ratios *= -1 + elif (abs(existing_x_angle) > (pi / 2) and direction_ratios.z > 0) or ( + abs(existing_x_angle) < (pi / 2) and direction_ratios.z < 0 + ): + offset_direction = direction_ratios.copy() * -1 + if layer_params["direction_sense"] == "POSITIVE": + direction_ratios *= -1 + + # If direction changed, update extrusion with rotation compensation + if (direction_ratios.normalized() - old_direction.normalized()).length > 1e-6: + update_extrusion_direction(element, tuple(direction_ratios), obj) + # After updating direction, get the updated extrusion + extrusion = tool.Model.get_extrusion(representation) + + # Update depth extrusion.Depth = perpendicular_depth # Update position ifc_position = extrusion.Position - if direction_ratios.length > 0: offset_vector = direction_ratios.normalized() * perpendicular_offset position = offset_vector material = ifcopenshell.util.element.get_material(element) if material and material.is_a("IfcMaterialLayerSetUsage"): - # Only set offset if not preserving it (preserves independent offsets per instance) - if not preserve_offset: - material.OffsetFromReferenceLine = position.z + material.OffsetFromReferenceLine = position.z if ifc_position: ifc_position.Location.Coordinates = position else: tool.Model.add_extrusion_position(extrusion, position) - bonsai.core.geometry.switch_representation( - tool.Ifc, - tool.Geometry, - obj=obj, - representation=representation, - ) + else: + props = tool.Model.get_model_props() + x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else props.x_angle + new_rep = ifcopenshell.api.geometry.add_slab_representation( + tool.Ifc.get(), + context=body_context, + depth=thickness * self.unit_scale, + x_angle=x_angle, + ) + for inverse in tool.Ifc.get().get_inverse(representation): + ifcopenshell.util.element.replace_attribute(inverse, representation, new_rep) + bonsai.core.geometry.switch_representation( + tool.Ifc, + tool.Geometry, + obj=obj, + representation=new_rep, + ) + bonsai.core.geometry.remove_representation( + tool.Ifc, tool.Geometry, obj=obj, representation=representation + ) + return else: props = tool.Model.get_model_props() x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else props.x_angle @@ -328,12 +363,13 @@ class DumbSlabPlaner: ifcopenshell.api.geometry.assign_representation( tool.Ifc.get(), product=element, representation=representation ) - bonsai.core.geometry.switch_representation( - tool.Ifc, - tool.Geometry, - obj=obj, - representation=representation, - ) + + bonsai.core.geometry.switch_representation( + tool.Ifc, + tool.Geometry, + obj=obj, + representation=representation, + ) def update_extrusion_direction( element: ifcopenshell.entity_instance, new_direction_ratios: tuple, obj: bpy.types.Object = None diff --git a/src/bonsai/bonsai/tool/loader.py b/src/bonsai/bonsai/tool/loader.py index 8fdce1da4c..ebc6722bee 100644 --- a/src/bonsai/bonsai/tool/loader.py +++ b/src/bonsai/bonsai/tool/loader.py @@ -1024,7 +1024,7 @@ class Loader(bonsai.core.tool.Loader): elif material.is_a("IfcMaterialLayerSetUsage"): usage = material layer_set = material.ForLayerSet - offset = usage.OffsetFromReferenceLine + offset = usage.OffsetFromReferenceLine * cls.unit_scale sense_factor = 1 if usage.DirectionSense == "POSITIVE" else -1 elif material.is_a("IfcMaterialLayerSet"): usage = None @@ -1037,17 +1037,11 @@ class Loader(bonsai.core.tool.Loader): if len(layer_set.MaterialLayers) == 1: return mesh - # Get mesh bounds - if len(mesh.vertices) > 0: - z_coords = [v.co.z for v in mesh.vertices] - mesh_z_min = min(z_coords) - mesh_z_max = max(z_coords) - bm = bmesh.new() bm.from_mesh(mesh) prev_co = None - advance_direction = None + advance_direction = None # Will store direction to advance planes if not usage: sense_factor = 1 @@ -1055,7 +1049,9 @@ class Loader(bonsai.core.tool.Loader): co = Vector((0.0, 0.0, offset)) advance_direction = no elif usage.LayerSetDirection == "AXIS2": - # Get local extrusion direction + co = Vector((0.0, offset, 0.0)) + + # Get LOCAL extrusion direction local_extrusion = Vector([0.0, 0.0, 1.0]) if body := ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW"): for item in ifcopenshell.util.representation.resolve_representation(body).Items: @@ -1067,58 +1063,17 @@ class Loader(bonsai.core.tool.Loader): # Thickness direction: perpendicular to extrusion and length thickness_dir = local_extrusion.cross(Vector([1.0, 0.0, 0.0])).normalized() + + # Ensure it points in POSITIVE Y (through wall thickness, not backwards) if thickness_dir.y < 0: thickness_dir = -thickness_dir no = thickness_dir - - # Find start point by projecting vertices onto thickness direction - if len(mesh.vertices) > 0: - projections = [Vector(v.co).dot(no) for v in mesh.vertices] - min_proj = min(projections) - max_proj = max(projections) - - centroid = sum((Vector(v.co) for v in mesh.vertices), Vector()) / len(mesh.vertices) - centroid_proj = centroid.dot(no) - - if sense_factor == 1: - start_proj = min_proj - else: - start_proj = max_proj - - offset_dist = start_proj - centroid_proj - co = centroid + no * offset_dist - - actual_mesh_height = max_proj - min_proj - else: - co = Vector((0.0, 0.0, 0.0)) - advance_direction = thickness_dir elif usage.LayerSetDirection == "AXIS3": - # AXIS3 layers go through slab thickness (local Z) + co = Vector((0.0, 0.0, offset)) + no = cls.get_extrusion_vector(element).normalized() no = Vector([0.0, 0.0, 1.0]) - - # Find start point by projecting vertices onto Z direction - if len(mesh.vertices) > 0: - projections = [Vector(v.co).dot(no) for v in mesh.vertices] - min_proj = min(projections) - max_proj = max(projections) - - centroid = sum((Vector(v.co) for v in mesh.vertices), Vector()) / len(mesh.vertices) - centroid_proj = centroid.dot(no) - - if sense_factor == 1: - start_proj = min_proj - else: - start_proj = max_proj - - offset = start_proj - centroid_proj - co = centroid + no * offset - - actual_mesh_height = max_proj - min_proj - else: - co = Vector((0.0, 0.0, 0.0)) - advance_direction = no elif usage.LayerSetDirection == "AXIS1": co = Vector((0.0, 0.0, offset)) @@ -1126,27 +1081,10 @@ class Loader(bonsai.core.tool.Loader): no = Vector([1.0, 0.0, 0.0]) advance_direction = no - # Apply DirectionSense - if usage and usage.LayerSetDirection == "AXIS2": - if sense_factor == -1: - advance_direction = -advance_direction - test_normal = -no - else: - test_normal = no - elif usage and usage.LayerSetDirection == "AXIS1": - no = no * sense_factor - advance_direction = advance_direction * sense_factor - test_normal = no - elif usage and usage.LayerSetDirection == "AXIS3": - if sense_factor == -1: - advance_direction = -advance_direction - test_normal = -no - else: - test_normal = no - else: - test_normal = no + no *= sense_factor + advance_direction *= sense_factor - # Cache material styles + # Cache this body = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") styles = {} has_layer_styles = False @@ -1154,23 +1092,12 @@ class Loader(bonsai.core.tool.Loader): if style := tool.Ifc.get_entity(material): styles[style] = i - layer_list = list(enumerate(layer_set.MaterialLayers)) - - # Calculate scale factor - total_layer_thickness = sum(layer.LayerThickness for _, layer in layer_list) - - if "actual_mesh_height" not in locals(): - actual_mesh_height = mesh_z_max - mesh_z_min if len(mesh.vertices) > 0 else total_layer_thickness - - thickness_scale = actual_mesh_height / total_layer_thickness if total_layer_thickness > 0 else 1.0 - last_i = len(layer_set.MaterialLayers) - 1 - - for idx, (original_i, layer) in enumerate(layer_list): - if idx != last_i: + for i, layer in enumerate(layer_set.MaterialLayers): + if i != last_i: prev_co = co.copy() - advance_vector = advance_direction * layer.LayerThickness * thickness_scale - co += advance_vector + # Use advance_direction (not no) to move planes! + co += advance_direction * layer.LayerThickness * cls.unit_scale bisect_geom = bmesh.ops.bisect_plane( bm, geom=bm.verts[:] + bm.edges[:] + bm.faces[:], dist=0.0001, plane_co=co, plane_no=no @@ -1183,18 +1110,18 @@ class Loader(bonsai.core.tool.Loader): material_index = len(mesh.materials) mesh.materials.append(tool.Ifc.get_object(style)) - if idx == last_i: + if i == last_i: for face in bisect_geom["geom"]: if isinstance(face, bmesh.types.BMFace): center = face.calc_center_median() - if (center - co).dot(test_normal) >= 0: + if (center - co).dot(no) >= 0: face.material_index = material_index has_layer_styles = True else: for face in bisect_geom["geom"]: if isinstance(face, bmesh.types.BMFace): center = face.calc_center_median() - if (center - co).dot(test_normal) < 0 and (center - prev_co).dot(test_normal) >= 0: + if (center - co).dot(no) < 0 and (center - prev_co).dot(no) >= 0: face.material_index = material_index has_layer_styles = True From 34303c2cfe7db3dd7e8c01b57fe611ef4777a0c8 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 23:28:14 +1100 Subject: [PATCH 091/171] Revert "fix to https://github.com/IfcOpenShell/IfcOpenShell/commit/7f87f1fb89fb001320223a4d85e6267f342bf13c: have rotation around the object's origin, not the world origin" This reverts commit 249e68f16395b5b273466930dd21ffefc0ac512a. --- src/bonsai/bonsai/bim/module/model/wall.py | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index 5276e64692..01a2d84b7f 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -578,21 +578,9 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator): dot_product = expected_new_world_direction.dot(current_world_direction) angle = acos(min(max(dot_product, -1), 1)) - # Rotate around object's own origin - # Decompose the matrix to get translation, rotation, scale - translation, rotation, scale = obj.matrix_world.decompose() - - # Create rotation matrix and convert to quaternion + # Create and apply rotation matrix rotation_matrix = Matrix.Rotation(angle, 4, rotation_axis) - rotation_quat = rotation_matrix.to_quaternion() - - # Apply rotation to existing rotation (quaternion multiplication) - new_rotation = rotation_quat @ rotation - - # Reconstruct matrix_world with same translation, new rotation, same scale - obj.matrix_world = ( - Matrix.Translation(translation) @ new_rotation.to_matrix().to_4x4() @ Matrix.Scale(1, 4) - ) + obj.matrix_world = rotation_matrix @ obj.matrix_world bpy.context.view_layer.update() bonsai.core.geometry.switch_representation( From 5ce6d927f31c718bb1817e63588a08b3a243f993 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jan 2026 23:39:45 +1100 Subject: [PATCH 092/171] Revert "fix #7537 - Layer thickness correct when slab is rotated and few other features... " This reverts commit 7f87f1fb89fb001320223a4d85e6267f342bf13c. --- src/bonsai/bonsai/bim/module/model/slab.py | 304 ++++-------------- src/bonsai/bonsai/bim/module/model/wall.py | 155 +++------ src/bonsai/bonsai/tool/collector.py | 2 + src/bonsai/bonsai/tool/loader.py | 70 +--- .../api/geometry/add_slab_representation.py | 35 +- .../api/geometry/add_wall_representation.py | 3 +- 6 files changed, 126 insertions(+), 443 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index caf389165b..7630ef258c 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -40,11 +40,9 @@ import bonsai.core.root import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from bonsai.bim.module.model.decorator import ( - PolylineDecorator, - ProductDecorator, - ProfileDecorator, -) +from math import cos, pi +from mathutils import Vector, Matrix +from bonsai.bim.module.model.decorator import ProfileDecorator, PolylineDecorator, ProductDecorator from bonsai.bim.module.model.polyline import PolylineOperator @@ -270,65 +268,50 @@ class DumbSlabPlaner: if representation: extrusion = tool.Model.get_extrusion(representation) if extrusion: + # TODO Right now we don't have a reliable way to calculate the existing x_angle only based solely on the extrusion direction. + # For instances, a 30 degrees angled extrusion with positive direction has the same extrusion direction as a + # -150 degrees angled extrusion with negative direction. The difference lies in the object's rotation. + # This means that things can get messy if the user changes the object x angle somehow. We have to figure out an alternative approach. + existing_x_angle = obj.rotation_euler.x + existing_x_angle = 0 if tool.Cad.is_x(existing_x_angle, 0, tolerance=0.001) else existing_x_angle + existing_x_angle = 0 if tool.Cad.is_x(existing_x_angle, pi, tolerance=0.001) else existing_x_angle + existing_x_angle = 0 if tool.Cad.is_x(existing_x_angle, 2 * pi, tolerance=0.001) else existing_x_angle direction_ratios = Vector(extrusion.ExtrudedDirection.DirectionRatios) + offset_direction = direction_ratios.copy() + perpendicular_depth = thickness * abs(1 / cos(existing_x_angle)) + perpendicular_offset = layer_offset * abs(1 / cos(existing_x_angle)) / self.unit_scale - # Calculate the actual extrusion angle from vertical - extrusion_angle = 0 - if direction_ratios.length > 0: - cos_angle = direction_ratios.normalized().dot(Vector((0, 0, 1))) - extrusion_angle = acos(min(max(cos_angle, -1), 1)) + # Check angle and z direction to determine whether the extrusion direction is positive or negative + if (abs(existing_x_angle) < (pi / 2) and direction_ratios.z > 0) or ( + abs(existing_x_angle) > (pi / 2) and direction_ratios.z < 0 + ): + # The extrusion direction is positive. If the layer_parameter is set to negative, + # then the we change the extrusion direction. + if layer_params["direction_sense"] == "NEGATIVE": + direction_ratios *= -1 + elif (abs(existing_x_angle) > (pi / 2) and direction_ratios.z > 0) or ( + abs(existing_x_angle) < (pi / 2) and direction_ratios.z < 0 + ): + # The extrusion direction is negative. If the layer_parameter is set to positive, + # then the we change the extrusion direction. And the offset direction should remain positive + # for either direction sense, so we change it. + offset_direction *= -1 + if layer_params["direction_sense"] == "POSITIVE": + direction_ratios *= -1 - # FIX: Only apply 1/cos factor when there's actual extrusion slope - if extrusion_angle > 1e-6: - perpendicular_depth = thickness * abs(1 / cos(extrusion_angle)) - perpendicular_offset = layer_offset * abs(1 / cos(extrusion_angle)) / self.unit_scale - else: - perpendicular_depth = thickness - perpendicular_offset = layer_offset / self.unit_scale - - # Check if direction sense needs to be applied - # This should only happen if explicitly requested, not automatically - if layer_params.get("apply_direction_sense", False): - # Store current direction before potential change - old_direction = direction_ratios.copy() - - # Apply direction sense logic - existing_x_angle = extrusion_angle - if (abs(existing_x_angle) < (pi / 2) and direction_ratios.z > 0) or ( - abs(existing_x_angle) > (pi / 2) and direction_ratios.z < 0 - ): - if layer_params["direction_sense"] == "NEGATIVE": - direction_ratios *= -1 - elif (abs(existing_x_angle) > (pi / 2) and direction_ratios.z > 0) or ( - abs(existing_x_angle) < (pi / 2) and direction_ratios.z < 0 - ): - offset_direction = direction_ratios.copy() * -1 - if layer_params["direction_sense"] == "POSITIVE": - direction_ratios *= -1 - - # If direction changed, update extrusion with rotation compensation - if (direction_ratios.normalized() - old_direction.normalized()).length > 1e-6: - update_extrusion_direction(element, tuple(direction_ratios), obj) - # After updating direction, get the updated extrusion - extrusion = tool.Model.get_extrusion(representation) - - # Update depth + extrusion.ExtrudedDirection.DirectionRatios = tuple(direction_ratios) extrusion.Depth = perpendicular_depth - # Update position ifc_position = extrusion.Position - if direction_ratios.length > 0: - offset_vector = direction_ratios.normalized() * perpendicular_offset - position = offset_vector - - material = ifcopenshell.util.element.get_material(element) - if material and material.is_a("IfcMaterialLayerSetUsage"): + position = offset_direction * perpendicular_offset + material = ifcopenshell.util.element.get_material(element) + if material: + if material.is_a("IfcMaterialLayerSetUsage"): material.OffsetFromReferenceLine = position.z - - if ifc_position: - ifc_position.Location.Coordinates = position - else: - tool.Model.add_extrusion_position(extrusion, position) + if ifc_position: + ifc_position.Location.Coordinates = position + else: + tool.Model.add_extrusion_position(extrusion, position) else: props = tool.Model.get_model_props() @@ -371,112 +354,6 @@ class DumbSlabPlaner: representation=representation, ) - def update_extrusion_direction( - element: ifcopenshell.entity_instance, new_direction_ratios: tuple, obj: bpy.types.Object = None - ) -> None: - """ - Update extrusion direction while preserving overall object orientation. - - Args: - element: The IFC element - new_direction_ratios: New extrusion direction ratios (x,y,z) - obj: Optional Blender object (will be fetched if not provided) - """ - if not obj: - obj = tool.Ifc.get_object(element) - if not obj: - return - - representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") - if not representation: - return - - extrusion = tool.Model.get_extrusion(representation) - if not extrusion: - return - - # Get current extrusion direction - old_direction = Vector(extrusion.ExtrudedDirection.DirectionRatios) - if old_direction.length == 0: - old_direction = Vector((0, 0, 1)) # Default - - new_direction = Vector(new_direction_ratios) - if new_direction.length == 0: - new_direction = Vector((0, 0, 1)) # Default - - # Normalize both directions - old_direction_normalized = old_direction.normalized() - new_direction_normalized = new_direction.normalized() - - # Store current object matrix - old_matrix = obj.matrix_world.copy() - - # Calculate the rotation needed to keep same orientation - # When extrusion direction changes from A to B relative to local coordinates, - # we need to rotate the object by the inverse of that change - - # Calculate rotation from old to new direction - rotation_axis = old_direction_normalized.cross(new_direction_normalized) - if rotation_axis.length > 1e-6: - rotation_axis.normalized() - dot_product = old_direction_normalized.dot(new_direction_normalized) - angle = acos(min(max(dot_product, -1), 1)) - - # Apply INVERSE rotation to object to compensate - rotation_matrix = Matrix.Rotation(-angle, 4, rotation_axis) - - # Update object rotation - obj.matrix_world = old_matrix @ rotation_matrix - bpy.context.view_layer.update() - - # Update extrusion direction (keeping magnitude) - if old_direction.length > 0: - # Preserve the magnitude of the original direction vector - magnitude = old_direction.length - new_direction = new_direction_normalized * magnitude - - extrusion.ExtrudedDirection.DirectionRatios = tuple(new_direction) - - # Update depth based on new extrusion angle - extrusion_angle = 0 - if new_direction.length > 0: - cos_angle = new_direction_normalized.dot(Vector((0, 0, 1))) - extrusion_angle = acos(min(max(cos_angle, -1), 1)) - - # Get current depth (perpendicular depth) - current_perpendicular_depth = extrusion.Depth - - # If we have material layer info, calculate actual thickness - material = ifcopenshell.util.element.get_material(element) - actual_thickness = current_perpendicular_depth - if material and material.is_a("IfcMaterialLayerSetUsage"): - layer_set = material.ForLayerSet - actual_thickness = sum([l.LayerThickness for l in layer_set.MaterialLayers]) - unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - actual_thickness *= unit_scale - - # Convert to perpendicular depth if needed - if extrusion_angle > 1e-6: - new_perpendicular_depth = actual_thickness * abs(1 / cos(extrusion_angle)) - else: - new_perpendicular_depth = actual_thickness - - extrusion.Depth = new_perpendicular_depth - - # Update position offset if needed - if extrusion.Position: - # Recalculate offset based on new direction - material = ifcopenshell.util.element.get_material(element) - if material and material.is_a("IfcMaterialLayerSetUsage"): - offset = material.OffsetFromReferenceLine - if extrusion_angle > 1e-6: - perpendicular_offset = offset * abs(1 / cos(extrusion_angle)) - else: - perpendicular_offset = offset - - offset_vector = new_direction_normalized * perpendicular_offset - extrusion.Position.Location.Coordinates = tuple(offset_vector) - class EnableEditingSketchExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.enable_editing_sketch_extrusion_profile" @@ -752,8 +629,6 @@ class EnableEditingExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): existing_x_angle = tool.Model.get_existing_x_angle(extrusion) layer_params = tool.Model.get_material_layer_parameters(element) - usage_type = tool.Model.get_usage_type(element) - # TODO: review #7537 properly, this is a quick fix but something doesn't seem right. original_rotation_x = 0 if extrusion.Position: @@ -768,49 +643,22 @@ class EnableEditingExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): tranlation_matrix = Matrix.Translation(rot_offset) position = position @ tranlation_matrix - # For AXIS3 with dual rotation: Reset rotation to zero so profile is horizontal - if usage_type == "LAYER3": - # Store original rotation for later restoration - original_rotation_x = obj.rotation_euler.x - obj["pre_edit_rotation_x"] = original_rotation_x - - # Reset rotation to zero - profile will be horizontal - current_z_rot = obj.rotation_euler.z - obj.rotation_euler.x = 0.0 - obj.rotation_euler.z = current_z_rot - else: - # Original behavior: Restore Object rotation to zero - local_rot_mat = obj.rotation_euler.to_matrix() - rot_mat = Matrix.Rotation(-existing_x_angle, 4, "X") - new_rot_mat = local_rot_mat.to_4x4() @ rot_mat - new_rot_euler = new_rot_mat.to_euler() - obj.rotation_euler = new_rot_euler + # Restore Object rotation to zero + local_rot_mat = obj.rotation_euler.to_matrix() + rot_mat = Matrix.Rotation(-existing_x_angle, 4, "X") + new_rot_mat = local_rot_mat.to_4x4() @ rot_mat + new_rot_euler = new_rot_mat.to_euler() + obj.rotation_euler = new_rot_euler else: position = Matrix() - # Import profile with correct x_angle - if usage_type == "LAYER3": - # For LAYER3: Use x_angle=0 and scale by cos(rotation) to get horizontal projection - obj_x_rotation = original_rotation_x # Use stored original rotation - scale_factor = abs(cos(obj_x_rotation)) if abs(obj_x_rotation) > 1e-6 else 1.0 - - # Import with x_angle=0 - tool.Model.import_profile(extrusion.SweptArea, obj=obj, position=position, x_angle=0) - - # Scale the Y coordinates by cos(rotation) to get horizontal projection - bpy.ops.object.mode_set(mode="OBJECT") - for vert in obj.data.vertices: - vert.co.y *= scale_factor - else: - # For other types: Use existing_x_angle - tool.Model.import_profile(extrusion.SweptArea, obj=obj, position=position, x_angle=existing_x_angle) + tool.Model.import_profile(extrusion.SweptArea, obj=obj, position=position, x_angle=existing_x_angle) bpy.ops.object.mode_set(mode="EDIT") ProfileDecorator.install(context, exit_edit_mode_callback=lambda: disable_editing_extrusion_profile(context)) if not bpy.app.background: tool.Blender.set_viewport_tool("bim.cad_tool") - return {"FINISHED"} @@ -832,7 +680,6 @@ class EditExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): extrusion = tool.Model.get_extrusion(body) existing_x_angle = tool.Model.get_existing_x_angle(extrusion) layer_params = tool.Model.get_material_layer_parameters(element) - usage_type = tool.Model.get_usage_type(element) if extrusion.Position: position = Matrix(ifcopenshell.util.placement.get_axis2placement(extrusion.Position).tolist()) @@ -846,38 +693,17 @@ class EditExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): tranlation_matrix = Matrix.Translation(rot_offset) position = position @ tranlation_matrix - # Restore rotation - if usage_type == "LAYER3": - # Restore original rotation from before editing - if "pre_edit_rotation_x" in obj: - current_z_rot = obj.rotation_euler.z - obj.rotation_euler.x = obj["pre_edit_rotation_x"] - obj.rotation_euler.z = current_z_rot - del obj["pre_edit_rotation_x"] - else: - # Original behavior - local_rot_mat = obj.rotation_euler.to_matrix() - rot_mat = Matrix.Rotation(existing_x_angle, 4, "X") - new_rot_mat = local_rot_mat.to_4x4() @ rot_mat - new_rot_euler = new_rot_mat.to_euler() - obj.rotation_euler = new_rot_euler + # Restore Object rotation to x_angle + local_rot_mat = obj.rotation_euler.to_matrix() + rot_mat = Matrix.Rotation(existing_x_angle, 4, "X") + new_rot_mat = local_rot_mat.to_4x4() @ rot_mat + new_rot_euler = new_rot_mat.to_euler() + obj.rotation_euler = new_rot_euler else: position = Matrix() - # Export profile with correct x_angle - if usage_type == "LAYER3": - # Scale Y coordinates back up before exporting - obj_x_rotation = obj.rotation_euler.x - scale_factor = abs(cos(obj_x_rotation)) if abs(obj_x_rotation) > 1e-6 else 1.0 - - # Un-scale the profile before exporting - for vert in obj.data.vertices: - vert.co.y /= scale_factor # Inverse of import scaling - - profile = tool.Model.export_profile(obj, position=position, x_angle=0) - else: - profile = tool.Model.export_profile(obj, position=position, x_angle=existing_x_angle) + profile = tool.Model.export_profile(obj, position=position, x_angle=existing_x_angle) if not profile: @@ -929,28 +755,6 @@ class EditExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): tool.Ifc.get(), product=element, representation=new_footprint ) - footprint_context = ifcopenshell.util.representation.get_context( - tool.Ifc.get(), "Plan", "FootPrint", "SKETCH_VIEW" - ) - if not footprint_context: - return - - curves = [profile.OuterCurve] - if profile.is_a("IfcArbitraryProfileDefWithVoids"): - curves.extend(profile.InnerCurves) - new_footprint = ifcopenshell.api.geometry.add_footprint_representation( - tool.Ifc.get(), context=footprint_context, curves=curves - ) - old_footprint = ifcopenshell.util.representation.get_representation(element, "Plan", "FootPrint", "SKETCH_VIEW") - if old_footprint: - for inverse in tool.Ifc.get().get_inverse(old_footprint): - ifcopenshell.util.element.replace_attribute(inverse, old_footprint, new_footprint) - bonsai.core.geometry.remove_representation(tool.Ifc, tool.Geometry, obj=obj, representation=old_footprint) - else: - ifcopenshell.api.geometry.assign_representation( - tool.Ifc.get(), product=element, representation=new_footprint - ) - class ResetVertex(bpy.types.Operator): bl_idname = "bim.reset_vertex" diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index 01a2d84b7f..d98a81f62d 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -48,6 +48,8 @@ import bonsai.core.root import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore +from math import pi, sin, cos, degrees, atan2 +from mathutils import Vector, Matrix from bonsai.bim.module.model.decorator import PolylineDecorator, ProductDecorator from bonsai.bim.module.model.opening import FilledOpeningGenerator from bonsai.bim.module.model.polyline import PolylineOperator @@ -403,42 +405,24 @@ class ChangeExtrusionDepth(bpy.types.Operator, tool.Ifc.Operator): representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") if not representation: continue - extrusion = tool.Model.get_extrusion(representation) if not extrusion: continue - - # Get extrusion direction x, y, z = extrusion.ExtrudedDirection.DirectionRatios - - # Calculate angle from vertical x_angle = Vector((0, 1)).angle_signed(Vector((y, z))) - - # For sloped walls, compensate so VERTICAL height = target depth - cos_angle = cos(x_angle) - compensation_factor = abs(1 / cos_angle) if abs(cos_angle) > 1e-6 else 1.0 - new_depth_ifc = (self.depth / si_conversion) * compensation_factor - - extrusion.Depth = new_depth_ifc - - # IMPORTANT: Refresh the geometry to reflect the IFC changes - bonsai.core.geometry.switch_representation( - tool.Ifc, - tool.Geometry, - obj=obj, - representation=representation, - ) - + extrusion.Depth = self.depth / si_conversion * (1 / cos(x_angle)) if tool.Model.get_usage_type(element) == "LAYER2": for rel in element.ConnectedFrom: if rel.is_a() == "IfcRelConnectsElements": - related_element = rel.RelatedElement - if related_element.is_a() == "IfcWall": - layer2_objs.append(tool.Ifc.get_object(related_element)) + ifcopenshell.api.geometry.disconnect_element( + ifc_file, + relating_element=rel.RelatingElement, + related_element=element, + ) + layer2_objs.append(obj) if layer2_objs: tool.Model.recalculate_walls(layer2_objs) - return {"FINISHED"} @@ -458,131 +442,81 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): layer2_objs: list[bpy.types.Object] = [] - builder = ifcopenshell.util.shape_builder.ShapeBuilder(tool.Ifc.get()) + x_angle = 0 if tool.Cad.is_x(self.x_angle, 0, tolerance=0.001) else self.x_angle + x_angle = 0 if tool.Cad.is_x(self.x_angle, pi, tolerance=0.001) else self.x_angle unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - x_angle = self.x_angle + selected_objs = tool.Model.get_selected_mesh_ifc_objects() + builder = ifcopenshell.util.shape_builder.ShapeBuilder(tool.Ifc.get()) - for obj in context.selected_objects: + for obj in selected_objs: element = tool.Ifc.get_entity(obj) - if not element: - continue - + assert element representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") if not representation: continue extrusion = tool.Model.get_extrusion(representation) if not extrusion: continue - - # Get current object rotation matrix - obj_rotation = obj.matrix_world.to_3x3() - - # Get current extrusion direction in LOCAL coordinates - current_local_direction = Vector(extrusion.ExtrudedDirection.DirectionRatios) - if current_local_direction.length == 0: - current_local_direction = Vector((0, 0, 1)) - current_local_direction_normalized = current_local_direction.normalized() - - # Calculate what the current extrusion direction is in WORLD coordinates - current_world_direction = obj_rotation @ current_local_direction_normalized - existing_x_angle = tool.Model.get_existing_x_angle(extrusion) existing_x_angle = 0 if tool.Cad.is_x(existing_x_angle, 0, tolerance=0.001) else existing_x_angle existing_x_angle = 0 if tool.Cad.is_x(existing_x_angle, pi, tolerance=0.001) else existing_x_angle - - # Calculate the NEW local extrusion direction based on x_angle - new_local_direction = Vector((0.0, sin(x_angle), cos(x_angle))) - - # Check if extrusion direction is actually changing - current_local_norm = current_local_direction_normalized - new_local_norm = new_local_direction.normalized() - - # Compare the LOCAL directions - local_direction_changed = (new_local_norm - current_local_norm).length > 1e-6 - if tool.Model.get_usage_type(element) == "LAYER2": + x, y, z = extrusion.ExtrudedDirection.DirectionRatios depth = extrusion.Depth / abs(1 / cos(existing_x_angle)) perpendicular_depth = depth * abs(1 / cos(x_angle)) - - # Update extrusion direction - if local_direction_changed: - extrusion.ExtrudedDirection.DirectionRatios = tuple(new_local_direction) - - # Always update depth - extrusion.Depth = perpendicular_depth + extrusion.ExtrudedDirection.DirectionRatios = (0.0, sin(x_angle), cos(x_angle)) layer2_objs.append(obj) - + extrusion.Depth = perpendicular_depth else: if tool.Model.get_usage_type(element) == "LAYER3": - # For slabs, handle polyline scaling - existing_obj_x_angle = obj.rotation_euler.x - existing_obj_x_angle = ( - 0 if tool.Cad.is_x(existing_obj_x_angle, 0, tolerance=0.001) else existing_obj_x_angle - ) - existing_obj_x_angle = ( - 0 if tool.Cad.is_x(existing_obj_x_angle, pi, tolerance=0.001) else existing_obj_x_angle - ) + existing_x_angle = obj.rotation_euler.x + existing_x_angle = 0 if tool.Cad.is_x(existing_x_angle, 0, tolerance=0.001) else existing_x_angle + existing_x_angle = 0 if tool.Cad.is_x(existing_x_angle, pi, tolerance=0.001) else existing_x_angle - # Scale the polyline coordinates coord_list = builder.get_polyline_coords(extrusion.SweptArea.OuterCurve) coord_list = [ (p[0], p[1] * abs(cos(existing_x_angle))) for p in coord_list - ] # Reset the transformation + ] # Reset the transformation and returns to the original points with 0 degrees coord_list = [ (p[0], p[1] * abs(1 / cos(x_angle))) for p in coord_list ] # Apply the transformation for the new x_angle builder.set_polyline_coords(extrusion.SweptArea.OuterCurve, coord_list) - # Calculate new extrusion direction with direction sense - base_local_direction = Vector((0.0, sin(x_angle), cos(x_angle))) + # The extrusion direction calculated previously default to the positive direction + # Here we set the extrusion direction to negative if that's the case + direction_ratios = Vector((0.0, sin(x_angle), cos(x_angle))) + # direction_ratios = Vector(extrusion.ExtrudedDirection.DirectionRatios) layer_params = tool.Model.get_material_layer_parameters(element) perpendicular_depth = layer_params["thickness"] * abs(1 / cos(x_angle)) / unit_scale perpendicular_offset = layer_params["offset"] * abs(1 / cos(x_angle)) / unit_scale - offset_direction = base_local_direction.copy() + offset_direction = direction_ratios.copy() - # Apply direction sense - final_local_direction = base_local_direction.copy() - if (abs(x_angle) < (pi / 2) and base_local_direction.z > 0) or ( - abs(x_angle) > (pi / 2) and base_local_direction.z < 0 + # Check angle and z direction to determine whether the extrusion direction is positive or negative + if (abs(x_angle) < (pi / 2) and direction_ratios.z > 0) or ( + abs(x_angle) > (pi / 2) and direction_ratios.z < 0 ): + # The extrusion direction is positive. If the layer_parameter is set to negative, + # then the we change the extrusion direction. if layer_params["direction_sense"] == "NEGATIVE": - final_local_direction *= -1 - elif (x_angle > (pi / 2) and base_local_direction.z > 0) or ( - x_angle < (pi / 2) and base_local_direction.z < 0 + direction_ratios *= -1 + elif ((x_angle) > (pi / 2) and direction_ratios.z > 0) or ( + (x_angle) < (pi / 2) and direction_ratios.z < 0 ): + # The extrusion direction is negative. If the layer_parameter is set to positive, + # then the we change the extrusion direction. + # then the we change the extrusion direction. And the offset direction should remain positive + # for either direction sense, so we change it. offset_direction *= -1 if layer_params["direction_sense"] == "POSITIVE": - final_local_direction *= -1 + direction_ratios *= -1 - # Check if extrusion direction actually changed - final_local_norm = final_local_direction.normalized() - local_direction_changed = (final_local_norm - current_local_norm).length > 1e-6 - - # Update extrusion properties - extrusion.ExtrudedDirection.DirectionRatios = tuple(final_local_direction) + extrusion.ExtrudedDirection.DirectionRatios = tuple(direction_ratios) extrusion.Depth = perpendicular_depth if extrusion.Position or perpendicular_offset != 0: position = offset_direction * perpendicular_offset tool.Model.add_extrusion_position(extrusion, position) - # Adjust object rotation if extrusion direction changed - if local_direction_changed: - # Calculate what the NEW world direction would be with current object rotation - expected_new_world_direction = obj_rotation @ final_local_norm - - # The rotation needed is from expected_new_world_direction to current_world_direction - rotation_axis = expected_new_world_direction.cross(current_world_direction) - if rotation_axis.length > 1e-6: - rotation_axis.normalize() - dot_product = expected_new_world_direction.dot(current_world_direction) - angle = acos(min(max(dot_product, -1), 1)) - - # Create and apply rotation matrix - rotation_matrix = Matrix.Rotation(angle, 4, rotation_axis) - obj.matrix_world = rotation_matrix @ obj.matrix_world - bpy.context.view_layer.update() - bonsai.core.geometry.switch_representation( tool.Ifc, tool.Geometry, @@ -590,6 +524,12 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator): representation=representation, ) + # Object rotation + current_z_rot = obj.rotation_euler.z + rot_mat = mathutils.Matrix.Rotation(x_angle, 4, "X") + obj.rotation_euler = rot_mat.to_euler() + obj.rotation_euler.z = current_z_rot + if layer2_objs: tool.Model.recalculate_walls(layer2_objs) return {"FINISHED"} @@ -1084,7 +1024,6 @@ class DumbWallGenerator: obj=obj, representation=representation, ) - pset = ifcopenshell.api.pset.add_pset(self.file, product=element, name="EPset_Parametric") ifcopenshell.api.pset.edit_pset(self.file, pset=pset, properties={"Engine": "Bonsai.DumbLayer2"}) material = ifcopenshell.util.element.get_material(element) diff --git a/src/bonsai/bonsai/tool/collector.py b/src/bonsai/bonsai/tool/collector.py index 01c13d6cec..74a55d7dc1 100644 --- a/src/bonsai/bonsai/tool/collector.py +++ b/src/bonsai/bonsai/tool/collector.py @@ -46,6 +46,8 @@ class Collector(bonsai.core.tool.Collector): # Note that tool.Geometry.is_locked is only checked within the if # statements for efficiency as it is a slow check. tool.Geometry.lock_scale(obj) + if element.is_a("IfcSlab"): + tool.Geometry.lock_rotation(obj, x=True) if element.is_a("IfcGridAxis"): if tool.Geometry.is_locked(element): diff --git a/src/bonsai/bonsai/tool/loader.py b/src/bonsai/bonsai/tool/loader.py index ebc6722bee..8b14de9362 100644 --- a/src/bonsai/bonsai/tool/loader.py +++ b/src/bonsai/bonsai/tool/loader.py @@ -1033,57 +1033,28 @@ class Loader(bonsai.core.tool.Loader): sense_factor = 1 else: return mesh - if len(layer_set.MaterialLayers) == 1: return mesh - bm = bmesh.new() bm.from_mesh(mesh) - prev_co = None - advance_direction = None # Will store direction to advance planes - if not usage: - sense_factor = 1 + sense_factor = 1 # Assume the extrusion vector points in the direction sense no = cls.get_extrusion_vector(element).normalized() co = Vector((0.0, 0.0, offset)) - advance_direction = no elif usage.LayerSetDirection == "AXIS2": co = Vector((0.0, offset, 0.0)) - - # Get LOCAL extrusion direction - local_extrusion = Vector([0.0, 0.0, 1.0]) - if body := ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW"): - for item in ifcopenshell.util.representation.resolve_representation(body).Items: - while item.is_a("IfcBooleanResult"): - item = item.FirstOperand - if item.is_a("IfcExtrudedAreaSolid"): - local_extrusion = Vector(item.ExtrudedDirection.DirectionRatios).normalized() - break - - # Thickness direction: perpendicular to extrusion and length - thickness_dir = local_extrusion.cross(Vector([1.0, 0.0, 0.0])).normalized() - - # Ensure it points in POSITIVE Y (through wall thickness, not backwards) - if thickness_dir.y < 0: - thickness_dir = -thickness_dir - - no = thickness_dir - advance_direction = thickness_dir + no = cls.get_extrusion_vector(element).normalized() + no = no.cross(Vector([1.0, 0.0, 0.0])) elif usage.LayerSetDirection == "AXIS3": co = Vector((0.0, 0.0, offset)) no = cls.get_extrusion_vector(element).normalized() no = Vector([0.0, 0.0, 1.0]) - advance_direction = no elif usage.LayerSetDirection == "AXIS1": co = Vector((0.0, 0.0, offset)) no = cls.get_extrusion_vector(element).normalized() no = Vector([1.0, 0.0, 0.0]) - advance_direction = no - no *= sense_factor - advance_direction *= sense_factor - # Cache this body = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") styles = {} @@ -1091,25 +1062,20 @@ class Loader(bonsai.core.tool.Loader): for i, material in enumerate(mesh.materials): if style := tool.Ifc.get_entity(material): styles[style] = i - last_i = len(layer_set.MaterialLayers) - 1 for i, layer in enumerate(layer_set.MaterialLayers): if i != last_i: prev_co = co.copy() - # Use advance_direction (not no) to move planes! - co += advance_direction * layer.LayerThickness * cls.unit_scale - + co += no * layer.LayerThickness * cls.unit_scale bisect_geom = bmesh.ops.bisect_plane( bm, geom=bm.verts[:] + bm.edges[:] + bm.faces[:], dist=0.0001, plane_co=co, plane_no=no ) bmesh.ops.duplicate(bm, geom=bisect_geom["geom_cut"]) - if not (style := ifcopenshell.util.representation.get_material_style(layer.Material, body)): continue if (material_index := styles.get(style, None)) is None: material_index = len(mesh.materials) mesh.materials.append(tool.Ifc.get_object(style)) - if i == last_i: for face in bisect_geom["geom"]: if isinstance(face, bmesh.types.BMFace): @@ -1134,35 +1100,13 @@ class Loader(bonsai.core.tool.Loader): return mesh @classmethod - def get_extrusion_vector(cls, element): - """Get the extrusion direction in WORLD coordinates (accounting for object rotation)""" - if body := ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW"): + def get_extrusion_vector(cls, wall): + if body := ifcopenshell.util.representation.get_representation(wall, "Model", "Body", "MODEL_VIEW"): for item in ifcopenshell.util.representation.resolve_representation(body).Items: while item.is_a("IfcBooleanResult"): item = item.FirstOperand if item.is_a("IfcExtrudedAreaSolid"): - local_direction = Vector(item.ExtrudedDirection.DirectionRatios) - - # Transform to world coordinates using object rotation - obj = tool.Ifc.get_object(element) - if obj: - # Apply object rotation to get actual world direction - world_direction = obj.matrix_world.to_3x3() @ local_direction - return world_direction - - return local_direction - return Vector([0.0, 0.0, 1.0]) - - @classmethod - def get_local_extrusion_vector(cls, element): - """Get the extrusion direction in LOCAL coordinates (from IFC, no object rotation)""" - if body := ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW"): - for item in ifcopenshell.util.representation.resolve_representation(body).Items: - while item.is_a("IfcBooleanResult"): - item = item.FirstOperand - if item.is_a("IfcExtrudedAreaSolid"): - local_direction = Vector(item.ExtrudedDirection.DirectionRatios) - return local_direction + return Vector(item.ExtrudedDirection.DirectionRatios) return Vector([0.0, 0.0, 1.0]) @classmethod diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py index b5029dc934..6e600eca9a 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py @@ -100,15 +100,10 @@ class Usecase: size = self.convert_si_to_unit(1) points = ((0.0, 0.0), (size, 0.0), (size, size), (0.0, size), (0.0, 0.0)) if self.polyline: - # Only scale polyline if we have actual slope - if self.x_angle and abs(self.x_angle) > 1e-6: - points = [ - (self.convert_si_to_unit(p[0]), self.convert_si_to_unit(p[1] * abs(1 / cos(self.x_angle)))) - for p in self.polyline - ] - else: - points = [(self.convert_si_to_unit(p[0]), self.convert_si_to_unit(p[1])) for p in self.polyline] - + points = [ + (self.convert_si_to_unit(p[0]), self.convert_si_to_unit(p[1] * abs(1 / cos(self.x_angle)))) + for p in self.polyline + ] if self.file.schema == "IFC2X3": curve = self.file.createIfcPolyline([self.file.createIfcCartesianPoint(p) for p in points]) else: @@ -119,23 +114,21 @@ class Usecase: else: direction_ratios = (0.0, 0.0, 1.0) + offset_direction = direction_ratios # offset direction doesn't change if direction_sense is negative extrusion_direction = self.file.createIfcDirection(direction_ratios) + if self.direction_sense == "NEGATIVE": + direction_ratios = tuple(-n for n in direction_ratios) + extrusion_direction = self.file.createIfcDirection(direction_ratios) - # Calculate depth based on extrusion angle - extrusion_angle = abs(self.x_angle) if self.x_angle else 0 - if extrusion_angle > 1e-6: - perpendicular_depth = self.convert_si_to_unit(self.depth) * abs(1 / cos(extrusion_angle)) - perpendicular_offset = self.convert_si_to_unit(self.offset) * abs(1 / cos(extrusion_angle)) - else: - perpendicular_depth = self.convert_si_to_unit(self.depth) - perpendicular_offset = self.convert_si_to_unit(self.offset) - + perpendicular_offset = self.convert_si_to_unit(self.offset) * abs(1 / cos(self.x_angle)) + perpendicular_depth = self.convert_si_to_unit(self.depth) * abs(1 / cos(self.x_angle)) position = None + # default position for IFC2X3 where .Position is not optional if self.file.schema == "IFC2X3" or self.offset != 0: position_vector = ( - direction_ratios[0] * perpendicular_offset, - direction_ratios[1] * perpendicular_offset, - direction_ratios[2] * perpendicular_offset, + offset_direction[0] * perpendicular_offset, + offset_direction[1] * perpendicular_offset, + offset_direction[2] * perpendicular_offset, ) position = self.file.createIfcAxis2Placement3D( self.file.createIfcCartesianPoint(position_vector), diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py index 69f9a82fa7..ff62bae474 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py @@ -85,6 +85,7 @@ class Usecase: def create_item(self) -> ifcopenshell.entity_instance: length = self.convert_si_to_unit(self.settings["length"]) thickness = self.convert_si_to_unit(self.settings["thickness"]) + thickness *= 1 / cos(self.settings["x_angle"]) if self.settings["direction_sense"] == "NEGATIVE": thickness *= -1 points = ( @@ -112,7 +113,7 @@ class Usecase: self.file.createIfcDirection((1.0, 0.0, 0.0)), ), extrusion_direction, - self.convert_si_to_unit(self.settings["height"]), + self.convert_si_to_unit(self.settings["height"]) * abs(1 / cos(self.settings["x_angle"])), ) if self.settings["booleans"]: extrusion = self.apply_booleans(extrusion) From 0e8c98a7bbea6d5680b33a75dfbba36d38b47ca5 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Wed, 28 Jan 2026 18:34:14 -0600 Subject: [PATCH 093/171] Fix: Handle emoji encoding error in dev_environment.py Prevents UnicodeEncodeError on Windows when displaying success message. --- src/bonsai/scripts/dev_environment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/scripts/dev_environment.py b/src/bonsai/scripts/dev_environment.py index 4598d0bf49..d16edad96d 100644 --- a/src/bonsai/scripts/dev_environment.py +++ b/src/bonsai/scripts/dev_environment.py @@ -193,7 +193,7 @@ def main() -> None: print(f"Downloading {url} -> {filepath}") urllib.request.urlretrieve(url, filepath) - input("Dev environment is all set. 🎉🎉\nPress Enter to continue..." "") + input("Dev environment is all set!! \nPress Enter to continue...") if __name__ == "__main__": From cc995db98ba7b852312478f25811b32c083f5ebe Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 29 Jan 2026 19:12:02 +1100 Subject: [PATCH 094/171] Minor fix to 46a6356 to use the collector tool This has a few advantages: - The collection logic is centralised - The collection logic is configurable based on the collection mode - The name is not hardcoded --- src/bonsai/bonsai/bim/module/spatial/prop.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/spatial/prop.py b/src/bonsai/bonsai/bim/module/spatial/prop.py index 5c48566d08..3d3d2e74f4 100644 --- a/src/bonsai/bonsai/bim/module/spatial/prop.py +++ b/src/bonsai/bonsai/bim/module/spatial/prop.py @@ -99,8 +99,7 @@ def update_name(self: "BIMContainer", context: bpy.types.Context) -> None: tool.Spatial.edit_container_name(element, self.name) if obj := tool.Ifc.get_object(element): tool.Root.set_object_name(obj, element) - if collection := tool.Blender.get_object_bim_props(obj).collection: - collection.name = f"{element.is_a()}/{element.Name or 'Unnamed'}" + tool.Collector.assign(obj) bonsai.bim.handler.refresh_ui_data() From c1aa1dedba96d11497f4f77958ea7d50d0f2e034 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 29 Jan 2026 19:33:44 +1100 Subject: [PATCH 095/171] Fix #7615. Forgot a line when refactoring type geometry regeneration. Added test. --- src/bonsai/bonsai/bim/module/model/slab.py | 1 + src/bonsai/test/bim/feature/type.feature | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index 7630ef258c..3dcbf2aef0 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -249,6 +249,7 @@ class DumbSlabPlaner: self.change_thickness(element, total_thickness) def change_thickness(self, element: ifcopenshell.entity_instance, thickness: float) -> None: + self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) if tool.Model.get_usage_type(element) != "LAYER3": return layer_params = tool.Model.get_material_layer_parameters(element) diff --git a/src/bonsai/test/bim/feature/type.feature b/src/bonsai/test/bim/feature/type.feature index 1efefef446..9bae601b30 100644 --- a/src/bonsai/test/bim/feature/type.feature +++ b/src/bonsai/test/bim/feature/type.feature @@ -110,7 +110,7 @@ Scenario: Assign type - assign to a type with a material layer set, which automa And the object "IfcWall/Unnamed" has a "100" thick layered material containing the material "Default" And the object "IfcWall/Unnamed" dimensions are ".5,.1,.5" -Scenario: Assign type - assign to a different type with a material layer set +Scenario: Assign type - assign to a different type with a LAYER2 material layer set Given an empty IFC project And I add a cube And the object "Cube" is selected @@ -149,6 +149,23 @@ Scenario: Assign type - assign to a different type with a material layer set Then the object "IfcWall/Cube" has a "200" thick layered material containing the material "Default" And the object "IfcWall/Cube" dimensions are "1,.2,1" +Scenario: Assign type - assign to a different type with a LAYER3 material layer set + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcSlabType" + And the variable "element_type" is "[e for e in {ifc}.by_type('IfcSlabType') if e.Name == 'FLR200'][0].id()" + And I set "scene.BIMModelProperties.relating_type_id" to "{element_type}" + When I press "bim.add_occurrence" + Then the object "IfcSlab/Slab" is an "IfcSlab" + And the object "IfcSlab/Slab" dimensions are "1,1,0.2" + And the object "IfcSlab/Slab" bottom left corner is at "0,0,0" + And the object "IfcSlab/Slab" top right corner is at "1,1,0.2" + When I look at the "Type" panel + And I click "GREASEPENCIL" + And I set the "relating_type" property to "FLR300" + And I click "CHECKMARK" + Then the object "IfcSlab/Slab" dimensions are "1,1,0.3" + Scenario: Assign type - assign to a type with a material profile set Given an empty IFC project And I add a cube From 966751a928aa77163b8829029463f98774d33754 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Thu, 29 Jan 2026 13:10:54 +0100 Subject: [PATCH 096/171] Add support for FLOW_SEGMENT_RECTANGULAR_HOLLOW in profile creation in the MEP Segment Tool --- src/bonsai/bonsai/bim/module/root/data.py | 5 +++++ src/bonsai/bonsai/bim/module/root/operator.py | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/root/data.py b/src/bonsai/bonsai/bim/module/root/data.py index 66412e7d48..d2516559b4 100644 --- a/src/bonsai/bonsai/bim/module/root/data.py +++ b/src/bonsai/bonsai/bim/module/root/data.py @@ -191,6 +191,11 @@ class IfcClassData: "Rectangular Distribution Segment", "Works similarly to Profile, has distribution ports", ), + ( + "FLOW_SEGMENT_RECTANGULAR_HOLLOW", + "Rectangular Hollow Distribution Segment", + "Works similarly to Profile, has distribution ports", + ), ( "FLOW_SEGMENT_CIRCULAR", "Circular Distribution Segment", diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index a2ac73f200..dc1d74f027 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -697,6 +697,24 @@ class AddElement(bpy.types.Operator, tool.Ifc.Operator): XDim=default_x_dim / unit_scale, YDim=default_y_dim / unit_scale, ) + elif representation_template == "FLOW_SEGMENT_RECTANGULAR_HOLLOW": + default_x_dim = 0.4 + default_y_dim = 0.2 + default_thickness = 0.005 + default_inner_fillet_radius = 0.005 + default_outer_fillet_radius = 0.005 + profile_name = f"{props.ifc_class}-{default_x_dim*1000}x{default_y_dim*1000}" + profile = tool.Ifc.get().create_entity( + "IfcRectangleHollowProfileDef", + ProfileName=profile_name, + ProfileType="AREA", + XDim=default_x_dim / unit_scale, + YDim=default_y_dim / unit_scale, + WallThickness=default_thickness / unit_scale, + InnerFilletRadius=default_inner_fillet_radius / unit_scale, + OuterFilletRadius=default_outer_fillet_radius / unit_scale, + ) + elif representation_template == "FLOW_SEGMENT_CIRCULAR": default_diameter = 0.1 profile_name = f"{props.ifc_class}-{default_diameter*1000}" From d06f5a6cb9fb279d9ec758a1b99e82dcc3ee6ea6 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Thu, 29 Jan 2026 13:12:47 +0100 Subject: [PATCH 097/171] Add thickness dimension to profile name --- src/bonsai/bonsai/bim/module/root/operator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index dc1d74f027..73f23deb9e 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -703,7 +703,7 @@ class AddElement(bpy.types.Operator, tool.Ifc.Operator): default_thickness = 0.005 default_inner_fillet_radius = 0.005 default_outer_fillet_radius = 0.005 - profile_name = f"{props.ifc_class}-{default_x_dim*1000}x{default_y_dim*1000}" + profile_name = f"{props.ifc_class}-{default_x_dim*1000}x{default_y_dim*1000}x{default_thickness*1000}" profile = tool.Ifc.get().create_entity( "IfcRectangleHollowProfileDef", ProfileName=profile_name, From e47694458f210b092126b748830cbef0cecc7899 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Thu, 29 Jan 2026 23:21:14 +0100 Subject: [PATCH 098/171] Add support for FLOW_SEGMENT_U_SHAPE in the AddElement operator --- src/bonsai/bonsai/bim/module/root/data.py | 5 +++++ src/bonsai/bonsai/bim/module/root/operator.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/root/data.py b/src/bonsai/bonsai/bim/module/root/data.py index d2516559b4..c23ea49e33 100644 --- a/src/bonsai/bonsai/bim/module/root/data.py +++ b/src/bonsai/bonsai/bim/module/root/data.py @@ -206,6 +206,11 @@ class IfcClassData: "Circular Hollow Distribution Segment", "Works similarly to Profile, has distribution ports", ), + ( + "FLOW_SEGMENT_U_SHAPE", + "U-Shape Distribution Segment", + "Uses IfcUShapeProfileDef, has distribution ports", + ), ) ) diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index 73f23deb9e..983429d311 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -735,6 +735,21 @@ class AddElement(bpy.types.Operator, tool.Ifc.Operator): Radius=(default_diameter / 2) / unit_scale, WallThickness=default_thickness, ) + elif representation_template == "FLOW_SEGMENT_U_SHAPE": + default_depth = 0.4 + default_flange_width = 0.2 + default_web_thickness = 0.005 + default_flange_thickness = 0.005 + profile_name = f"{props.ifc_class}-{default_depth*1000}x{default_flange_width*1000}x{default_web_thickness*1000}x{default_flange_thickness*1000}" + profile = tool.Ifc.get().create_entity( + "IfcUShapeProfileDef", + ProfileName=profile_name, + ProfileType="AREA", + Depth=default_depth / unit_scale, + FlangeWidth=default_flange_width / unit_scale, + WebThickness=default_web_thickness / unit_scale, + FlangeThickness=default_flange_thickness / unit_scale, + ) rel = ifcopenshell.api.material.assign_material( tool.Ifc.get(), products=[element], type="IfcMaterialProfileSet" From 83d97d7e9588a6c8a930c5262fa93967f5ee7515 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 30 Jan 2026 17:18:02 +1100 Subject: [PATCH 099/171] Fix #7616. Make regenerate array an operator instead of an array preference Sync children was a bit odd because it's not actually an "array parameter" per se, just a way to regenerate. It's now an operator. There was a deeper issue I encountered where the way arrays work is that they duplicate the parent element. (first encountered in e51d2d ) However, the duplication code has special array handling too. To avoid issues with this cyclical coupling the previous solution was to reimplement object duplication (with all sorts of pitfalls that has). Now, I've tried to decouple it further by clearing all array psets prior to any change, and readding the pset after everything has been regenerated. This can be improved upon but I don't feel confident until there is more comprehensive test coverage for the duplicate operator. --- .../bonsai/bim/module/model/__init__.py | 3 +- src/bonsai/bonsai/bim/module/model/array.py | 59 ++++++++++++------- src/bonsai/bonsai/bim/module/model/prop.py | 5 -- src/bonsai/bonsai/bim/module/model/ui.py | 2 +- src/bonsai/bonsai/tool/model.py | 41 ++++++------- 5 files changed, 59 insertions(+), 51 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/__init__.py b/src/bonsai/bonsai/bim/module/model/__init__.py index 57b4b561d0..9fbd631003 100644 --- a/src/bonsai/bonsai/bim/module/model/__init__.py +++ b/src/bonsai/bonsai/bim/module/model/__init__.py @@ -50,9 +50,10 @@ classes = ( array.EditArray, array.EnableEditingArray, array.ApplyArray, + array.RegenerateArray, array.RemoveArray, - array.SelectArrayParent, array.SelectAllArrayObjects, + array.SelectArrayParent, array.Input3DCursorXArray, array.Input3DCursorYArray, array.Input3DCursorZArray, diff --git a/src/bonsai/bonsai/bim/module/model/array.py b/src/bonsai/bonsai/bim/module/model/array.py index 3fb9360256..b1c13dbe75 100644 --- a/src/bonsai/bonsai/bim/module/model/array.py +++ b/src/bonsai/bonsai/bim/module/model/array.py @@ -61,7 +61,6 @@ class AddArray(bpy.types.Operator, tool.Ifc.Operator): "y": 0.0, "z": 0.0, "use_local_space": True, - "sync_children": False, "method": "OFFSET", } @@ -80,28 +79,27 @@ class AddArray(bpy.types.Operator, tool.Ifc.Operator): pset=pset, properties={"Parent": element.GlobalId, "Data": ifc_file.create_entity("IfcText", json.dumps(data))}, ) - return {"FINISHED"} -class DisableEditingArray(bpy.types.Operator, tool.Ifc.Operator): +class DisableEditingArray(bpy.types.Operator): bl_idname = "bim.disable_editing_array" bl_label = "Disable Editing Array" bl_options = {"REGISTER", "UNDO"} - def _execute(self, context): + def execute(self, context): obj = context.active_object assert obj tool.Model.get_array_props(obj).is_editing = -1 return {"FINISHED"} -class EnableEditingArray(bpy.types.Operator, tool.Ifc.Operator): +class EnableEditingArray(bpy.types.Operator): bl_idname = "bim.enable_editing_array" bl_label = "Enable Editing Array" bl_options = {"REGISTER", "UNDO"} item: bpy.props.IntProperty() - def _execute(self, context): + def execute(self, context): obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -122,11 +120,9 @@ class EnableEditingArray(bpy.types.Operator, tool.Ifc.Operator): props.y = data["y"] * si_conversion props.z = data["z"] * si_conversion props.use_local_space = data.get("use_local_space", False) - props.sync_children = data.get("sync_children", False) props.method = data.get("method", "OFFSET") props.is_editing = self.item - return {"FINISHED"} @@ -151,31 +147,25 @@ class EditArray(bpy.types.Operator, tool.Ifc.Operator): "y": props.y / si_conversion, "z": props.z / si_conversion, "use_local_space": props.use_local_space, - "sync_children": props.sync_children, "method": props.method, } props.is_editing = -1 try: - parent = tool.Ifc.get_object(tool.Ifc.get().by_guid(pset["Parent"])) + parent_element = tool.Ifc.get().by_guid(pset["Parent"]) + parent = tool.Ifc.get_object(parent_element) except: return {"FINISHED"} + tool.Blender.Modifier.Array.remove_constraints(parent_element) tool.Model.regenerate_array(parent, data) - - pset = tool.Ifc.get().by_id(pset["id"]) - data = tool.Ifc.get().createIfcText(json.dumps(data)) - ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties={"Data": data}) - tool.Blender.Modifier.Array.set_children_lock_state(element, self.item, True) tool.Blender.Modifier.Array.constrain_children_to_parent(element) # clears the relating_array_object so it doesn't show again next time props.relating_array_object = None - return {"FINISHED"} - class ApplyArray(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.apply_array" @@ -192,6 +182,33 @@ class ApplyArray(bpy.types.Operator, tool.Ifc.Operator): return {"FINISHED"} +class RegenerateArray(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.regenerate_array" + bl_label = "Regenerate Array" + bl_options = {"REGISTER", "UNDO"} + + def _execute(self, context): + obj = context.active_object + element = tool.Ifc.get_entity(obj) + pset = ifcopenshell.util.element.get_pset(element, "BBIM_Array") + try: + parent_element = tool.Ifc.get().by_guid(pset["Parent"]) + parent = tool.Ifc.get_object(parent_element) + except: + return {"FINISHED"} + pset = ifcopenshell.util.element.get_pset(parent_element, "BBIM_Array") + arrays = json.loads(pset["Data"]) + pset = tool.Ifc.get().by_id(pset["id"]) + for array in arrays: + for child in set(array["children"]): + if child_obj := tool.Ifc.get_object(tool.Ifc.get().by_guid(child)): + tool.Geometry.delete_ifc_object(child_obj) + array["children"].clear() + print('cleared array', arrays) + tool.Model.regenerate_array(obj, arrays) + tool.Blender.Modifier.Array.constrain_children_to_parent(element) + + class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.remove_array" bl_label = "Remove Array" @@ -216,7 +233,8 @@ class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): props.is_editing = -1 try: - parent = tool.Ifc.get_object(tool.Ifc.get().by_guid(pset["Parent"])) + parent_element = tool.Ifc.get().by_guid(pset["Parent"]) + parent = tool.Ifc.get_object(parent_element) except: return {"FINISHED"} @@ -226,9 +244,10 @@ class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): if not self.keep_objs: data[self.item]["count"] = 1 + tool.Blender.Modifier.Array.remove_constraints(parent_element) tool.Model.regenerate_array(parent, data, array_layers_to_apply=[self.item] if self.keep_objs else []) - pset = tool.Ifc.get().by_id(pset["id"]) + pset = tool.Pset.get_element_pset(element, "BBIM_Array") if len(data) == 1: ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=element, pset=pset) else: @@ -237,8 +256,6 @@ class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties={"Data": data}) tool.Blender.Modifier.Array.constrain_children_to_parent(element) - return {"FINISHED"} - class SelectArrayParent(bpy.types.Operator): bl_idname = "bim.select_array_parent" diff --git a/src/bonsai/bonsai/bim/module/model/prop.py b/src/bonsai/bonsai/bim/module/model/prop.py index 9f2664190d..ec79a49196 100644 --- a/src/bonsai/bonsai/bim/module/model/prop.py +++ b/src/bonsai/bonsai/bim/module/model/prop.py @@ -387,11 +387,6 @@ class BIMArrayProperties(PropertyGroup): name="Method", default="OFFSET", ) - sync_children: bpy.props.BoolProperty( - name="Sync Children", - description="Regenerate all children based on the parent object", - default=False, - ) relating_array_object: bpy.props.PointerProperty( type=bpy.types.Object, name="Copy Array Properties", diff --git a/src/bonsai/bonsai/bim/module/model/ui.py b/src/bonsai/bonsai/bim/module/model/ui.py index 2c931f4f45..d8a297433b 100644 --- a/src/bonsai/bonsai/bim/module/model/ui.py +++ b/src/bonsai/bonsai/bim/module/model/ui.py @@ -229,6 +229,7 @@ class BIM_PT_array(bpy.types.Panel): if ArrayData.data["parameters"]: row = self.layout.row(align=True) row.label(text=ArrayData.data["parameters"]["parent_name"], icon="CON_CHILDOF") + row.operator("bim.regenerate_array", icon="FILE_REFRESH", text="") row.operator("bim.select_array_parent", icon="OBJECT_DATA", text="") row.operator("bim.select_all_array_objects", icon="RESTRICT_SELECT_OFF", text="") @@ -246,7 +247,6 @@ class BIM_PT_array(bpy.types.Panel): row.prop(props, "method") row = box.row(align=True) row.prop(props, "use_local_space") - row.prop(props, "sync_children") col = box.column() row = col.row(align=True) row.prop(props, "x") diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index 08a0a0fd85..636ec9bc73 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -1051,6 +1051,7 @@ class Model(bonsai.core.tool.Model): tool.Model.regenerate_array(obj, array_data) + array_pset = tool.Pset.get_element_pset(element, "BBIM_Array") json_data = tool.Ifc.get().createIfcText(json.dumps(array_data)) ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=array_pset, properties={"Data": json_data}) @@ -1063,22 +1064,15 @@ class Model(bonsai.core.tool.Model): cls, parent_obj: bpy.types.Object, data: list[dict[str, Any]], array_layers_to_apply: Iterable[int] = tuple() ) -> None: """`array_layers_to_apply` - list of array layer indices to apply""" - tool.Blender.Modifier.Array.remove_constraints(tool.Ifc.get_entity(parent_obj)) + parent_element = tool.Ifc.get_entity(parent_obj) + + if pset := ifcopenshell.util.element.get_pset(parent_element, "BBIM_Array"): + ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=parent_element, pset=tool.Ifc.get().by_id(pset["id"])) unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) obj_stack = [parent_obj] for array_i, array in enumerate(data): - # for `sync_children` we remove all previously generated children to regenerate them again - # to assure they are in complete sync (psets, etc) with the array parent - if array["sync_children"]: - removed_children = set(array["children"]) - for removed_child in removed_children: - element = tool.Ifc.get().by_guid(removed_child) - if obj := tool.Ifc.get_object(element): - tool.Geometry.delete_ifc_object(obj) - array["children"].clear() - child_i = 0 existing_children = set(array["children"]) total_existing_children = len(array["children"]) @@ -1104,22 +1098,19 @@ class Model(bonsai.core.tool.Model): child_obj = tool.Ifc.get_object(child_element) assert child_obj except: - old_to_new, _ = tool.Geometry.duplicate_ifc_objects([obj]) - # TODO Is this correct to assume one child? I really - # don't understand the linked aggregates and array - # behaviour. + old_to_new, _ = tool.Geometry.duplicate_ifc_objects([parent_obj]) child_element = next(iter(old_to_new.values()))[0] child_obj = tool.Ifc.get_object(child_element) # add child pset - child_pset = tool.Pset.get_element_pset(child_element, "BBIM_Array") - if child_pset: - ifcopenshell.api.pset.edit_pset( - tool.Ifc.get(), - pset=child_pset, - properties={"Data": None}, - should_purge=False, - ) + if not (child_pset := tool.Pset.get_element_pset(child_element, "BBIM_Array")): + child_pset = ifcopenshell.api.pset.add_pset(tool.Ifc.get(), product=child_element, name="BBIM_Array") + ifcopenshell.api.pset.edit_pset( + tool.Ifc.get(), + pset=child_pset, + properties={"Data": None, "Parent": parent_element.GlobalId}, + should_purge=False, + ) # set child object position new_matrix = obj.matrix_world.copy() @@ -1155,6 +1146,10 @@ class Model(bonsai.core.tool.Model): bpy.context.view_layer.update() + pset = ifcopenshell.api.pset.add_pset(tool.Ifc.get(), product=parent_element, name="BBIM_Array") + json_data = tool.Ifc.get().createIfcText(json.dumps(data)) + ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties={"Data": json_data, "Parent": parent_element.GlobalId}) + @classmethod def replace_object_ifc_representation( cls, From 398cd7571e282a5e25d144ef76008893311dba58 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 30 Jan 2026 17:32:30 +1100 Subject: [PATCH 100/171] Add array feature tests I'm thinking of moving array into its own module. The "model" module is getting a bit full and it'll only grow bigger in the future. --- src/bonsai/pytest.ini | 1 + src/bonsai/test/bim/feature/array.feature | 276 ++++++++++++++++++++++ 2 files changed, 277 insertions(+) create mode 100644 src/bonsai/test/bim/feature/array.feature diff --git a/src/bonsai/pytest.ini b/src/bonsai/pytest.ini index 001313dd30..e628606201 100644 --- a/src/bonsai/pytest.ini +++ b/src/bonsai/pytest.ini @@ -1,6 +1,7 @@ [pytest] markers = aggregate + array attribute boolean boundary diff --git a/src/bonsai/test/bim/feature/array.feature b/src/bonsai/test/bim/feature/array.feature new file mode 100644 index 0000000000..23fa4c0080 --- /dev/null +++ b/src/bonsai/test/bim/feature/array.feature @@ -0,0 +1,276 @@ +@array +Feature: Array + +Scenario: Add array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + When the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I see "No Array Found" + And I click "ADD" + Then the object "IfcColumn/Column" exists + And I see "Column" + And I see "1 Items" + And I don't see "No Array Found" + And the object "IfcColumn/Column" is at "0,0,0" + +Scenario: Enable editing array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + When I click "GREASEPENCIL" + Then I see "Count" + And I see "Method" + And I don't see "1 Items" + +Scenario: Disable editing array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I click "CANCEL" + Then I see "1 Items" + And I don't see "Count" + +Scenario: Edit array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "0,0,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + +Scenario: Edit array - offset method + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I set the "Method" property to "Offset" + And I set the "X" property to "1" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + And the object "IfcColumn/Column.002" is at "2,0,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3" + +Scenario: Edit array - distribute method + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I set the "Method" property to "Distribute" + And I set the "X" property to "2" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + And the object "IfcColumn/Column.002" is at "2,0,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3" + +Scenario: Edit array - local space + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is rotated by "0,0,90" deg + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "Use Local Space" property to "TRUE" + And I set the "X" property to "1" + And I click "CHECKMARK" + Then the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "0,1,0" + +Scenario: Edit array - world space + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is rotated by "0,0,90" deg + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "Use Local Space" property to "FALSE" + And I set the "X" property to "1" + And I click "CHECKMARK" + Then the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + +Scenario: Edit array - decrease count + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I click "CHECKMARK" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" exists + And the object "IfcColumn/Column.002" does not exist + +Scenario: Edit array - multiple arrays + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I set the "Method" property to "Offset" + And I set the "X" property to "1" + And I click "CHECKMARK" + And I see "3 Items" + And I click "ADD" + And I click the "GREASEPENCIL" after the text "1 Items (Offset)" + And I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "Y" property to "1" + And I click the "CHECKMARK" after the text "Count" + Then I see "3 Items" + And I see "2 Items" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.003" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.004" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.005" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + And the object "IfcColumn/Column.002" is at "2,0,0" + And the object "IfcColumn/Column.003" is at "0,1,0" + And the object "IfcColumn/Column.004" is at "1,1,0" + And the object "IfcColumn/Column.005" is at "2,1,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.003" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.004" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.005" dimensions are "0.5,0.6,3" + +Scenario: Remove array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "X" property to "1" + And I click "CHECKMARK" + When I click "X" + Then the object "IfcColumn/Column" exists + And the object "IfcColumn/Column.001" does not exist + +Scenario: Regenerate array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When I click "FILE_REFRESH" + Then the object "IfcColumn/Column" exists + And the object "IfcColumn/Column.001" exists + +Scenario: Apply array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When I click "CHECKMARK" + Then the object "IfcColumn/Column" exists + And the object "IfcColumn/Column.001" exists + And I see "No Array Found" + +Scenario: Select array parent + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When the object "IfcColumn/Column.001" is selected + And I click "OBJECT_DATA" + Then the object "IfcColumn/Column" is selected + And the object "IfcColumn/Column.001" is not selected + +Scenario: Select all array objects + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When the object "IfcColumn/Column.001" is selected + And I click "RESTRICT_SELECT_OFF" + Then the object "IfcColumn/Column" is selected + And the object "IfcColumn/Column.001" is selected From 22f91e11b339c4649ee723db055b7e82deac04a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 14:03:44 +0000 Subject: [PATCH 101/171] Bump tar from 7.5.6 to 7.5.7 in /src/ifctester/webapp Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.6 to 7.5.7. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-tar/compare/v7.5.6...v7.5.7) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.7 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- src/ifctester/webapp/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ifctester/webapp/package-lock.json b/src/ifctester/webapp/package-lock.json index 35d03c74fa..647b9d534e 100644 --- a/src/ifctester/webapp/package-lock.json +++ b/src/ifctester/webapp/package-lock.json @@ -2851,9 +2851,9 @@ } }, "node_modules/tar": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.6.tgz", - "integrity": "sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz", + "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { From 2727bec929bbf8565c9ba93aea991d821c84ceb4 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Fri, 30 Jan 2026 10:24:53 +0100 Subject: [PATCH 102/171] Reorder representation_template to improve clarity and organization as per user feedback --- src/bonsai/bonsai/bim/module/root/data.py | 86 +++++++++++++---------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/root/data.py b/src/bonsai/bonsai/bim/module/root/data.py index c23ea49e33..50f3248d8f 100644 --- a/src/bonsai/bonsai/bim/module/root/data.py +++ b/src/bonsai/bonsai/bim/module/root/data.py @@ -134,44 +134,8 @@ class IfcClassData: return [("FACE", "Face", "A planar face surface")] templates = [ ("EMPTY", "No Geometry", "Start with an empty object"), - None, - ( - "OBJ", - "Tessellation From Object", - "Use an object as a template to create a new tessellation", - ), - ( - "MESH", - "Custom Tessellation", - "Create a basic tessellated or faceted cube", - ), - ( - "EXTRUSION", - "Custom Extruded Solid", - "An extrusion from an arbitrary profile", - ), ] - if ifc_class.endswith("Type") or ifc_class.endswith("Style"): - templates.extend( - [ - None, - ( - "LAYERSET_AXIS2", - "Vertical Layers", - "For objects similar to walls, will automatically add IfcMaterialLayerSet", - ), - ( - "LAYERSET_AXIS3", - "Horizontal Layers", - "For objects similar to slabs, will automatically add IfcMaterialLayerSet", - ), - ( - "PROFILESET", - "Extruded Profile", - "Create profile type object, automatically defines IfcMaterialProfileSet with the first profile from library", - ), - ] - ) + if ifc_class in ("IfcWindowType", "IfcWindowStyle", "IfcWindow"): templates.extend([None, ("WINDOW", "Window", "Parametric window")]) elif ifc_class in ("IfcDoorType", "IfcDoorStyle", "IfcDoor"): @@ -206,6 +170,11 @@ class IfcClassData: "Circular Hollow Distribution Segment", "Works similarly to Profile, has distribution ports", ), + ) + ) + if (ifc_class and "IfcCableCarrierSegment" in ifc_class): + templates.extend( + ( ( "FLOW_SEGMENT_U_SHAPE", "U-Shape Distribution Segment", @@ -213,7 +182,48 @@ class IfcClassData: ), ) ) - + + if ifc_class.endswith("Type") or ifc_class.endswith("Style"): + templates.extend( + [ + None, + ( + "LAYERSET_AXIS2", + "Vertical Layers", + "For objects similar to walls, will automatically add IfcMaterialLayerSet", + ), + ( + "LAYERSET_AXIS3", + "Horizontal Layers", + "For objects similar to slabs, will automatically add IfcMaterialLayerSet", + ), + ( + "PROFILESET", + "Extruded Profile", + "Create profile type object, automatically defines IfcMaterialProfileSet with the first profile from library", + ), + ] + ) + templates.extend( + [ + None, + ( + "OBJ", + "Tessellation From Object", + "Use an object as a template to create a new tessellation", + ), + ( + "MESH", + "Custom Tessellation", + "Create a basic tessellated or faceted cube", + ), + ( + "EXTRUSION", + "Custom Extruded Solid", + "An extrusion from an arbitrary profile", + ), + ] + ) return templates @classmethod From 6a63c651d374fe37300ec8950e02a7b11cb91d3f Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 30 Jan 2026 15:35:28 +0500 Subject: [PATCH 103/171] black . --- src/bonsai/bonsai/bim/module/model/array.py | 2 +- src/bonsai/bonsai/tool/model.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/array.py b/src/bonsai/bonsai/bim/module/model/array.py index b1c13dbe75..5f045435ac 100644 --- a/src/bonsai/bonsai/bim/module/model/array.py +++ b/src/bonsai/bonsai/bim/module/model/array.py @@ -204,7 +204,7 @@ class RegenerateArray(bpy.types.Operator, tool.Ifc.Operator): if child_obj := tool.Ifc.get_object(tool.Ifc.get().by_guid(child)): tool.Geometry.delete_ifc_object(child_obj) array["children"].clear() - print('cleared array', arrays) + print("cleared array", arrays) tool.Model.regenerate_array(obj, arrays) tool.Blender.Modifier.Array.constrain_children_to_parent(element) diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index 636ec9bc73..148f4a6b75 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -1067,7 +1067,9 @@ class Model(bonsai.core.tool.Model): parent_element = tool.Ifc.get_entity(parent_obj) if pset := ifcopenshell.util.element.get_pset(parent_element, "BBIM_Array"): - ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=parent_element, pset=tool.Ifc.get().by_id(pset["id"])) + ifcopenshell.api.pset.remove_pset( + tool.Ifc.get(), product=parent_element, pset=tool.Ifc.get().by_id(pset["id"]) + ) unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) obj_stack = [parent_obj] @@ -1104,7 +1106,9 @@ class Model(bonsai.core.tool.Model): # add child pset if not (child_pset := tool.Pset.get_element_pset(child_element, "BBIM_Array")): - child_pset = ifcopenshell.api.pset.add_pset(tool.Ifc.get(), product=child_element, name="BBIM_Array") + child_pset = ifcopenshell.api.pset.add_pset( + tool.Ifc.get(), product=child_element, name="BBIM_Array" + ) ifcopenshell.api.pset.edit_pset( tool.Ifc.get(), pset=child_pset, @@ -1148,7 +1152,9 @@ class Model(bonsai.core.tool.Model): pset = ifcopenshell.api.pset.add_pset(tool.Ifc.get(), product=parent_element, name="BBIM_Array") json_data = tool.Ifc.get().createIfcText(json.dumps(data)) - ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties={"Data": json_data, "Parent": parent_element.GlobalId}) + ifcopenshell.api.pset.edit_pset( + tool.Ifc.get(), pset=pset, properties={"Data": json_data, "Parent": parent_element.GlobalId} + ) @classmethod def replace_object_ifc_representation( From 47ac909a81047c41948228687d6e1d008b39df31 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 30 Jan 2026 15:37:12 +0500 Subject: [PATCH 104/171] ruff - sort imports --- src/bonsai/bonsai/bim/module/model/slab.py | 8 +++++--- src/bonsai/bonsai/bim/module/model/wall.py | 2 -- src/bonsai/test/core/test_type.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index 3dcbf2aef0..602c36df11 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -40,9 +40,11 @@ import bonsai.core.root import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import cos, pi -from mathutils import Vector, Matrix -from bonsai.bim.module.model.decorator import ProfileDecorator, PolylineDecorator, ProductDecorator +from bonsai.bim.module.model.decorator import ( + PolylineDecorator, + ProductDecorator, + ProfileDecorator, +) from bonsai.bim.module.model.polyline import PolylineOperator diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index d98a81f62d..ba3d93586b 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -48,8 +48,6 @@ import bonsai.core.root import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import pi, sin, cos, degrees, atan2 -from mathutils import Vector, Matrix from bonsai.bim.module.model.decorator import PolylineDecorator, ProductDecorator from bonsai.bim.module.model.opening import FilledOpeningGenerator from bonsai.bim.module.model.polyline import PolylineOperator diff --git a/src/bonsai/test/core/test_type.py b/src/bonsai/test/core/test_type.py index 0987ab3d9e..e46cf8168f 100644 --- a/src/bonsai/test/core/test_type.py +++ b/src/bonsai/test/core/test_type.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.type as subject -from test.core.bootstrap import ifc, model, type, geometry +from test.core.bootstrap import geometry, ifc, model, type class TestAssignType: From 38f9f309e78cd244ca30a689689bfe2d82f68cfc Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 26 Jan 2026 16:04:56 +0500 Subject: [PATCH 105/171] Bonsai Makefile - enable Python 3.13 build --- src/bonsai/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 68433466bd..e7ad75a1b4 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -61,6 +61,11 @@ PYLIBDIR:=python3.12 PYNUMBER:=312 PYPI_VERSION:=3.12 endif +ifeq ($(PYVERSION), py313) +PYLIBDIR:=python3.13 +PYNUMBER:=313 +PYPI_VERSION:=3.13 +endif ifeq ($(PLATFORM), linux) PYPI_PLATFORM:=--platform manylinux_2_17_x86_64 From e8a4590d0afe1d0117d7618c0bde4a39ace9a10a Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 27 Jan 2026 13:33:56 +0500 Subject: [PATCH 106/171] Bonsai Makefile - error for missing PYVERSION --- src/bonsai/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index e7ad75a1b4..c265097d3e 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -48,7 +48,6 @@ VERSION_PATCH:=$(shell cat '../../VERSION' | cut -d '.' -f 3) VERSION_DATE:=$(shell date '+%y%m%d') LAST_COMMIT_HASH:=$(shell git rev-parse HEAD) LAST_COMMIT_DATE:=$(shell git show -s --format=%cI) -PYVERSION:=py310 PYPI_IMP:=cp ifeq ($(PYVERSION), py311) @@ -104,7 +103,10 @@ endif .PHONY: dist dist: ifndef PLATFORM - $(error PLATFORM is not set) + $(error PLATFORM is not set. Example values: win, linux, macos, macosm1.) +endif +ifndef PYVERSION + $(error PYVERSION is not set. Example value - 'py313'. Supported Python versions - 3.11-3.13.) endif rm -rf build mkdir -p build From d74588246a34a49831666db58234146c1aec27fe Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 28 Jan 2026 15:23:35 +0500 Subject: [PATCH 107/171] bonsai Makefile - workaround for pyradiance in Python 3.13 Until https://github.com/LBNL-ETA/pyradiance/issues/53 is resolved. --- src/bonsai/Makefile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index c265097d3e..3a1fbe564b 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -195,12 +195,23 @@ endif cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pytz --dest=./wheels cd build && . env/$(VENV_ACTIVATE) && $(PIP) download tzfpy $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels # pyradiance is using different platform versions than defaults in our makefile. + # Temporary use `pyradiance_py313` until https://github.com/LBNL-ETA/pyradiance/issues/53 is resolved. +ifeq ($(PYVERSION), py313) +ifeq ($(PLATFORM), linux) + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 --platform manylinux_2_35_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels +else ifeq ($(PLATFORM), macos) + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 --platform macosx_10_13_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels +else + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels +endif +else ifeq ($(PLATFORM), linux) cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform manylinux_2_35_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else ifeq ($(PLATFORM), macos) cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform macosx_10_13_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels +endif endif # Required by ifctester web ui. cd build && . env/$(VENV_ACTIVATE) && $(PIP) download flask $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels From ac4ffd91e7ced815737d6f893107a0cb2f159cce Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 28 Jan 2026 15:23:46 +0500 Subject: [PATCH 108/171] Bonsai Makefile - drop wheel renaming workaround #5743 --- src/bonsai/Makefile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 3a1fbe564b..ca33bd4525 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -306,12 +306,6 @@ endif fi mv build/wheels/*.whl build/bonsai/wheels/ - # Temporary workaround for Blender not handling non-3.11 wheels #5743. - # Use '-n' as on macos x86-64 doesn't have a binary wheel and it autoincludes 'cp311'. - prev_whl_name=$$(find build/bonsai/wheels/tzfpy-*.whl); \ - whl_name=$$(echo $$prev_whl_name | sed "s/-cp39-/-cp$(PYNUMBER)-/"); \ - mv --update=none "$$prev_whl_name" "$$whl_name"; - ifneq ($(PLATFORM), linux) # Safeguard: in case one of `pip download` will break, # it will produce a linux wheel for non-linux build (our github action machine is using linux). From 91ee2b92220d86e711d217f36b6d7b2999eb78ca Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 28 Jan 2026 16:42:29 +0500 Subject: [PATCH 109/171] bonsai Makefile - require Blender 5.1 for Python 3.13 --- src/bonsai/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index ca33bd4525..03c05f2cbc 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -285,6 +285,11 @@ else $(SED) 's/version = "0.0.0"/version = "$(VERSION)-alpha$(VERSION_DATE)"/' build/pyproject.toml endif +# Blender 5.1+ requires Python 3.13. +ifeq ($(PYVERSION), py313) + $(SED) 's/blender_version_min = "4\.2\.0"/blender_version_min = "5.1.0"/' build/bonsai/blender_manifest.toml +endif + $(SED) "s/os-arch/$(BLENDER_PLATFORM)/" build/bonsai/blender_manifest.toml # Provides bonsai Add-on functionality From 40e4894f8e2087b31bf88ee29462f8e0b23a7091 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 28 Jan 2026 17:15:06 +0500 Subject: [PATCH 110/171] ci-bonsai-daily - exclude intel mac build for Python 3.13 Since Blender dropped support for it in Blender 5.0 and Python 3.13 is only needed for Blender 5.1. --- .github/workflows/ci-bonsai-daily.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci-bonsai-daily.yml b/.github/workflows/ci-bonsai-daily.yml index 8beddfe668..3b52198f3a 100644 --- a/.github/workflows/ci-bonsai-daily.yml +++ b/.github/workflows/ci-bonsai-daily.yml @@ -53,6 +53,11 @@ jobs: name: "MacOS ARM Build", short_name: macosm1, } + exclude: + # Python 3.13 is needed for Blender 5.1+ and Blender dropped Intel Mac support in 5.0. + - pyver: py313 + config: + short_name: macos steps: - uses: actions/checkout@v6 - uses: actions/setup-python@v6 # https://github.com/actions/setup-python From 2f7234684571db6b06359ae2c3bb9a5bdc466dfd Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 29 Jan 2026 12:23:44 +0500 Subject: [PATCH 111/171] bonsai Makefile - fix platform tag to use the latest pyradiance Apparently `pip download` is matching tag exactly, which was leading to Linux using pyradiance 0.5.3 instead of 1.1.5. --- src/bonsai/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 03c05f2cbc..aabf86cf4d 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -198,7 +198,7 @@ endif # Temporary use `pyradiance_py313` until https://github.com/LBNL-ETA/pyradiance/issues/53 is resolved. ifeq ($(PYVERSION), py313) ifeq ($(PLATFORM), linux) - cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 --platform manylinux_2_35_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 --platform manylinux_2_28_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else ifeq ($(PLATFORM), macos) cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 --platform macosx_10_13_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else @@ -206,7 +206,7 @@ else endif else ifeq ($(PLATFORM), linux) - cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform manylinux_2_35_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform manylinux_2_28_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else ifeq ($(PLATFORM), macos) cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform macosx_10_13_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else From 35dc0298988b1dc8a5424487b32f86e1154c54ca Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 29 Jan 2026 17:40:57 +0500 Subject: [PATCH 112/171] bonsai - add a dockerfile --- src/bonsai/Dockerfile | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/bonsai/Dockerfile diff --git a/src/bonsai/Dockerfile b/src/bonsai/Dockerfile new file mode 100644 index 0000000000..9805ec0530 --- /dev/null +++ b/src/bonsai/Dockerfile @@ -0,0 +1,22 @@ +# Build Bonsai .zip. +# Usage: +# # While in `bonsai` folder. +# docker build -t bonsai-dist . +# # Output zip file will be in `dist` folder. +# # See possible values for variables in `Makefile`'s `dist` target description. +# docker run --rm -v "$PWD/../../:/work" -w /work -e PLATFORM=win -e PYVERSION=py313 bonsai-dist + +FROM ubuntu:24.04 +RUN apt-get update +RUN apt-get install -y make git wget unzip zip + +# Python +RUN apt-get install -y software-properties-common +RUN add-apt-repository ppa:deadsnakes/ppa +RUN apt-get update +RUN apt-get install -y python3.11 python3.11-venv + +RUN apt-get install -y npm + +WORKDIR /work +CMD cd src/bonsai && make dist PLATFORM=$PLATFORM PYVERSION=$PYVERSION From 6409f41cdf2f608946d52f26460529cfc46fa88e Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 30 Jan 2026 16:02:32 +0500 Subject: [PATCH 113/171] Bonsai Makefile - sort of simplify pyversion check --- src/bonsai/Makefile | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index aabf86cf4d..133920bd00 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -50,20 +50,31 @@ LAST_COMMIT_HASH:=$(shell git rev-parse HEAD) LAST_COMMIT_DATE:=$(shell git show -s --format=%cI) PYPI_IMP:=cp -ifeq ($(PYVERSION), py311) -PYLIBDIR:=python3.11 -PYNUMBER:=311 -PYPI_VERSION:=3.11 +ifdef PYVERSION +SUPPORTED_PYVERSIONS := py311 py312 py313 + +ifeq ($(filter $(PYVERSION),$(SUPPORTED_PYVERSIONS)),) +$(error Unsupported PYVERSION=$(PYVERSION). Must be one of $(SUPPORTED_PYVERSIONS)) endif -ifeq ($(PYVERSION), py312) -PYLIBDIR:=python3.12 -PYNUMBER:=312 -PYPI_VERSION:=3.12 + +PYMINOR:=$(subst py3,,$(PYVERSION)) +PYLIBDIR:=python3.$(PYMINOR) +PYNUMBER:=3$(PYMINOR) +PYPI_VERSION:=3.$(PYMINOR) +endif # def PYVERSION + + +ifdef PLATFORM +SUPPORTED_PLATFORMS := linux macos macosm1 win + +ifeq ($(filter $(PLATFORM),$(SUPPORTED_PLATFORMS)),) +$(error Unsupported PLATFORM=$(PLATFORM). Must be one of $(SUPPORTED_PLATFORMS)) +endif + +ifeq ($(PLATFORM),macos) +ifeq ($(PYVERSION),py313) +$(error Blender 5.1 with Python 3.13 doesn't support intel macOS.) endif -ifeq ($(PYVERSION), py313) -PYLIBDIR:=python3.13 -PYNUMBER:=313 -PYPI_VERSION:=3.13 endif ifeq ($(PLATFORM), linux) @@ -90,6 +101,8 @@ PYPI_PLATFORM:=--platform win_amd64 BLENDER_PLATFORM:=windows-x64 endif +endif # def PLATFORM + # Current build commit hash. OLD:=e8eb5e4 .PHONY: bump @@ -103,10 +116,10 @@ endif .PHONY: dist dist: ifndef PLATFORM - $(error PLATFORM is not set. Example values: win, linux, macos, macosm1.) + $(error PLATFORM is not set. Example values: $(SUPPORTED_PLATFORMS).) endif ifndef PYVERSION - $(error PYVERSION is not set. Example value - 'py313'. Supported Python versions - 3.11-3.13.) + $(error PYVERSION is not set. Example values: $(SUPPORTED_PYVERSIONS). ) endif rm -rf build mkdir -p build From 611a898ada157b9d5cb9b5081b96b12405581da5 Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Fri, 30 Jan 2026 20:07:04 +0000 Subject: [PATCH 114/171] IFC Git close and reopen repo after cloning Apparently on Windows clone can leave 'stale processes' --- src/bonsai/bonsai/tool/ifcgit.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/tool/ifcgit.py b/src/bonsai/bonsai/tool/ifcgit.py index 6854b38432..db557542bc 100644 --- a/src/bonsai/bonsai/tool/ifcgit.py +++ b/src/bonsai/bonsai/tool/ifcgit.py @@ -64,10 +64,13 @@ class IfcGit: @classmethod def clone_repo(cls, remote_url: str, local_folder: str) -> git.Repo: - IfcGitRepo.repo = git.Repo.clone_from( + repo = git.Repo.clone_from( url=remote_url, to_path=local_folder, ) + # Close the repo to release stale subprocess + repo.close() + IfcGitRepo.repo = git.Repo(local_folder) cls.config_info_attributes(IfcGitRepo.repo) return IfcGitRepo.repo From 9b8b05a570223d7e1f70380d5385299912239577 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 22:45:49 +0000 Subject: [PATCH 115/171] Bump gersemi from 0.25.1 to 0.25.4 Bumps [gersemi](https://github.com/BlankSpruce/gersemi) from 0.25.1 to 0.25.4. - [Release notes](https://github.com/BlankSpruce/gersemi/releases) - [Changelog](https://github.com/BlankSpruce/gersemi/blob/master/CHANGELOG.md) - [Commits](https://github.com/BlankSpruce/gersemi/compare/0.25.1...0.25.4) --- updated-dependencies: - dependency-name: gersemi dependency-version: 0.25.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 13f3b15ba6..4e9d9687c5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ dependencies = [ "black==26.1.0", "ruff==0.14.14", "poethepoet", - "gersemi==0.25.1", + "gersemi==0.25.4", ] [tool.black] From c6257a4b3ac9f7d0b8a09272bc9835a4eaee23e8 Mon Sep 17 00:00:00 2001 From: Richard Brice <37087370+RickBrice@users.noreply.github.com> Date: Sat, 31 Jan 2026 05:30:06 -0800 Subject: [PATCH 116/171] Fixes errors in ifc_curve_rebar.cpp M_PI was not defined,. Replaced it with boost::math::constants::pi Calculation of area was incorrect. Area of a circle = PI*r*r = PI*dia*dia/4 --- src/examples/ifc_curve_rebar.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/examples/ifc_curve_rebar.cpp b/src/examples/ifc_curve_rebar.cpp index 81a705dc5e..0f66f7b45a 100644 --- a/src/examples/ifc_curve_rebar.cpp +++ b/src/examples/ifc_curve_rebar.cpp @@ -31,6 +31,9 @@ #include "ifcparse/Ifc2x3.h" #include "ifcparse/IfcHierarchyHelper.h" +#include +const static double PI = boost::math::constants::pi(); + typedef std::string S; typedef IfcParse::IfcGlobalId guid; boost::none_t const null = boost::none; @@ -41,7 +44,7 @@ void create_curve_rebar(IfcHierarchyHelper& file) int R = 3 * dia; int length = 12 * dia; - double crossSectionarea = M_PI * (dia / 2) * 2; + double crossSectionarea = PI * dia * dia / 4; IfcSchema::IfcReinforcingBar* rebar = new IfcSchema::IfcReinforcingBar( guid(), 0, S("test"), null, null, 0, 0, From c385b93701fd7e4441be213280b04c45723577fc Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 1 Feb 2026 21:08:11 +0100 Subject: [PATCH 117/171] Add option --make-volume to apply BOPAlgo_MakerVolume API to non-manifold first operands in opening subtraction --- src/ifcgeom/ConversionSettings.h | 8 +++++++- .../kernels/opencascade/OpenCascadeKernel.cpp | 18 ++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/ifcgeom/ConversionSettings.h b/src/ifcgeom/ConversionSettings.h index eb405a9e7c..febd789f6b 100644 --- a/src/ifcgeom/ConversionSettings.h +++ b/src/ifcgeom/ConversionSettings.h @@ -452,6 +452,12 @@ namespace ifcopenshell { static constexpr bool defaultvalue = false; }; + struct MakeVolume : public SettingBase { + static constexpr const char* const name = "make-volume"; + static constexpr const char* const description = "Try to isolate and fix a valid volume from non-manifold elements prior to opening subtraction"; + static constexpr bool defaultvalue = false; + }; + struct DeferProcessingFirstElement : public SettingBase { static constexpr const char* const name = "defer-processing-first-element"; static constexpr const char* const description = "Don't process first element in Iterator::initialize call()"; @@ -647,7 +653,7 @@ namespace ifcopenshell { }; class Settings : public SettingsContainer< - std::tuple + std::tuple > {}; } diff --git a/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp b/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp index fcb390b6cc..a5a9d94149 100644 --- a/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp +++ b/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp @@ -29,6 +29,7 @@ #include "base_utils.h" #include +#include namespace { struct opening_sorter { @@ -132,11 +133,24 @@ bool IfcGeom::OpenCascadeKernel::convert_openings(const IfcUtil::IfcBaseEntity* parts.push_back(it3_shape); } - for (auto& entity_part : parts) { + for (auto entity_part : parts) { bool is_manifold = util::is_manifold(entity_part); if (!is_manifold) { - Logger::Warning("Non-manifold first operand"); + if (settings_.get().get()) { + BOPAlgo_MakerVolume mv; + mv.AddArgument(entity_part); + mv.SetAvoidInternalShapes(true); + try { + mv.Perform(); + entity_part = mv.Shape(); + Logger::Warning("Sucessfully detected exterior volume to non-manifold first operand"); + } catch (const Standard_Failure& e) { + Logger::Warning("MakeVolume failed: " + std::string(e.GetMessageString()), entity); + } + } else { + Logger::Warning("Non-manifold first operand, use --make-volume to try and make manifold"); + } } TopoDS_Shape entity_part_result; From 950e147bdef9b170cc1952c0394314a231762e63 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Mon, 2 Feb 2026 09:34:28 -0600 Subject: [PATCH 118/171] fixes #7629: close editing mode for text objects after batch edit Fix issue where selected text annotations remained in editing mode after applying changes. Now properly restores original editing state for each selected object. --- .../bonsai/bim/module/drawing/operator.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 8c29bfbf41..a19a972ad6 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -3294,6 +3294,15 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): """Apply changes to other selected text objects using captured apply settings""" selected_objects = [obj for obj in context.selected_objects if obj != active_obj] + # Track editing status ONLY for selected objects (not all visible objects) + editing_status = {} + for obj in selected_objects: + element = tool.Ifc.get_entity(obj) + if not element or not tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]): + continue + obj_props = tool.Drawing.get_text_props(obj) + editing_status[obj] = obj_props.is_editing if hasattr(obj_props, "is_editing") else False + for obj in selected_objects: element = tool.Ifc.get_entity(obj) if not element: @@ -3345,6 +3354,16 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): if needs_update: core.edit_text(tool.Drawing, obj=obj) + # Restore original editing state for all selected objects + for obj, was_editing in editing_status.items(): + obj_props = tool.Drawing.get_text_props(obj) + if hasattr(obj_props, "is_editing"): + # If object was NOT originally being edited, disable editing mode now + if not was_editing and obj_props.is_editing: + core.disable_editing_text(tool.Drawing, obj=obj) + # If object WAS originally being edited but isn't now, re-enable it + elif was_editing and not obj_props.is_editing: + core.enable_editing_text(tool.Drawing, obj=obj) class EnableEditingText(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.enable_editing_text" From fe395f9024f63bffd18d0abbb8613cf4186b5778 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Feb 2026 09:13:26 +1100 Subject: [PATCH 119/171] Revert "fixes #7629: close editing mode for text objects after batch edit" This reverts commit 950e147bdef9b170cc1952c0394314a231762e63. --- .../bonsai/bim/module/drawing/operator.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index a19a972ad6..8c29bfbf41 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -3294,15 +3294,6 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): """Apply changes to other selected text objects using captured apply settings""" selected_objects = [obj for obj in context.selected_objects if obj != active_obj] - # Track editing status ONLY for selected objects (not all visible objects) - editing_status = {} - for obj in selected_objects: - element = tool.Ifc.get_entity(obj) - if not element or not tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]): - continue - obj_props = tool.Drawing.get_text_props(obj) - editing_status[obj] = obj_props.is_editing if hasattr(obj_props, "is_editing") else False - for obj in selected_objects: element = tool.Ifc.get_entity(obj) if not element: @@ -3354,16 +3345,6 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): if needs_update: core.edit_text(tool.Drawing, obj=obj) - # Restore original editing state for all selected objects - for obj, was_editing in editing_status.items(): - obj_props = tool.Drawing.get_text_props(obj) - if hasattr(obj_props, "is_editing"): - # If object was NOT originally being edited, disable editing mode now - if not was_editing and obj_props.is_editing: - core.disable_editing_text(tool.Drawing, obj=obj) - # If object WAS originally being edited but isn't now, re-enable it - elif was_editing and not obj_props.is_editing: - core.enable_editing_text(tool.Drawing, obj=obj) class EnableEditingText(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.enable_editing_text" From 1445f89f19e7ca41eab1408fd349d919519b0378 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Feb 2026 18:09:15 +1100 Subject: [PATCH 120/171] See #7629. Partially reimplement bulk text editing. This isn't complete yet, but it hopefully demonstrates a preferred implementation: * Logic in core, not operator * Loop done in core, without needing to call other core functions, so the overhead of enabling and disabling editing per object is removed. No more Blender logic, just straight editing in IFC. * Reuse existing function to grab text attributes instead of reimplementing it twice. * Remove dead code, there seems to be a function apply_to_selected_objects which was completely unused and duplicated code twice. --- .../bonsai/bim/module/drawing/operator.py | 165 +----------------- src/bonsai/bonsai/core/drawing.py | 13 +- src/bonsai/bonsai/core/tool.py | 1 - src/bonsai/bonsai/tool/drawing.py | 39 +---- 4 files changed, 19 insertions(+), 199 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 8c29bfbf41..4c52993aa0 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -3185,166 +3185,15 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): bl_options = {"REGISTER", "UNDO"} def _execute(self, context): - obj = context.active_object - props = tool.Drawing.get_text_props(obj) - - captured_apply_settings = { - "apply_font_size_to_all": props.apply_font_size_to_all, - "apply_newline_to_all": props.apply_newline_to_all, - "font_size": props.font_size, - "newline_at": props.newline_at, - "literals": [], - } - - for i, literal in enumerate(props.literals): - literal_data = { - "attributes": [ - (attr.string_value, attr.enum_value if attr.data_type == "enum" else attr.string_value) - for attr in literal.attributes - ], - "box_alignment": literal.box_alignment[:] if hasattr(literal, "box_alignment") else None, - "element_value_rows": [ - { - "category": row.category, - "element_key": row.element_key, - "formatted_value": row.formatted_value, - "separator": row.separator, - } - for row in literal.element_value_rows - ], - "product_used": literal.product_used.name if literal.product_used else None, - } - - if i < len(props.literal_apply_settings): - apply_settings = props.literal_apply_settings[i] - literal_data["apply_text_to_all"] = apply_settings.apply_text_to_all - literal_data["apply_path_to_all"] = apply_settings.apply_path_to_all - literal_data["apply_box_alignment_to_all"] = apply_settings.apply_box_alignment_to_all - else: - literal_data["apply_text_to_all"] = False - literal_data["apply_path_to_all"] = False - literal_data["apply_box_alignment_to_all"] = False - - captured_apply_settings["literals"].append(literal_data) - - obj["_bonsai_element_value_rows_backup"] = json.dumps(captured_apply_settings["literals"]) - - core.edit_text(tool.Drawing, obj=obj) - - self.apply_to_selected_objects_with_captured_data(context, obj, captured_apply_settings) - + apply_objs = [ + obj + for obj in tool.Blender.get_selected_objects() + if (element := tool.Ifc.get_entity(obj)) + and tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]) + ] + core.edit_text(tool.Drawing, attribute_obj=tool.Blender.get_active_object(), apply_objs=apply_objs) tool.Blender.update_viewport() - return {"FINISHED"} - - def apply_to_selected_objects(self, context, active_obj, active_props): - """Apply changes to other selected text objects based on toggle settings""" - selected_objects = [obj for obj in context.selected_objects if obj != active_obj] - - for obj in selected_objects: - element = tool.Ifc.get_entity(obj) - if not element or not tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]): - continue - - obj_props = tool.Drawing.get_text_props(obj) - needs_update = False - - if active_props.apply_font_size_to_all: - obj_props.font_size = active_props.font_size - needs_update = True - - if active_props.apply_newline_to_all: - obj_props.newline_at = active_props.newline_at - needs_update = True - - for i, active_literal in enumerate(active_props.literals): - if i >= len(obj_props.literals): - continue - - obj_props.ensure_literal_apply_settings(len(obj_props.literals)) - obj_literal = obj_props.literals[i] - - if i < len(active_props.literal_apply_settings): - active_settings = active_props.literal_apply_settings[i] - - if active_settings.apply_text_to_all: - if len(active_literal.attributes) > 0 and len(obj_literal.attributes) > 0: - obj_literal.attributes[0].string_value = active_literal.attributes[0].string_value - needs_update = True - - if active_settings.apply_path_to_all: - if len(active_literal.attributes) > 1 and len(obj_literal.attributes) > 1: - if ( - active_literal.attributes[1].data_type == "enum" - and obj_literal.attributes[1].data_type == "enum" - ): - obj_literal.attributes[1].enum_value = active_literal.attributes[1].enum_value - else: - obj_literal.attributes[1].string_value = active_literal.attributes[1].string_value - needs_update = True - - if active_settings.apply_box_alignment_to_all: - obj_literal.box_alignment = active_literal.box_alignment[:] - needs_update = True - - if needs_update: - core.edit_text(tool.Drawing, obj=obj) - - def apply_to_selected_objects_with_captured_data(self, context, active_obj, captured_data): - """Apply changes to other selected text objects using captured apply settings""" - selected_objects = [obj for obj in context.selected_objects if obj != active_obj] - - for obj in selected_objects: - element = tool.Ifc.get_entity(obj) - if not element: - continue - if not tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]): - continue - - obj_props = tool.Drawing.get_text_props(obj) - - if len(obj_props.literals) == 0: - core.enable_editing_text(tool.Drawing, obj=obj) - obj_props.ensure_literal_apply_settings(len(obj_props.literals)) - - needs_update = False - - if captured_data["apply_font_size_to_all"]: - obj_props.font_size = captured_data["font_size"] - needs_update = True - - if captured_data["apply_newline_to_all"]: - obj_props.newline_at = captured_data["newline_at"] - needs_update = True - - for i, captured_literal in enumerate(captured_data["literals"]): - if i >= len(obj_props.literals): - continue - - obj_literal = obj_props.literals[i] - - if captured_literal["apply_text_to_all"]: - if len(captured_literal["attributes"]) > 0 and len(obj_literal.attributes) > 0: - new_value = captured_literal["attributes"][0][0] # [0] = string_value - obj_literal.attributes[0].string_value = new_value - needs_update = True - - if captured_literal["apply_path_to_all"]: - if len(captured_literal["attributes"]) > 1 and len(obj_literal.attributes) > 1: - new_value = captured_literal["attributes"][1][1] # [1] = enum_value or string_value - if obj_literal.attributes[1].data_type == "enum": - obj_literal.attributes[1].enum_value = new_value - else: - obj_literal.attributes[1].string_value = new_value - needs_update = True - - if captured_literal["apply_box_alignment_to_all"] and captured_literal["box_alignment"]: - obj_literal.box_alignment = captured_literal["box_alignment"] - needs_update = True - - if needs_update: - core.edit_text(tool.Drawing, obj=obj) - class EnableEditingText(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.enable_editing_text" diff --git a/src/bonsai/bonsai/core/drawing.py b/src/bonsai/bonsai/core/drawing.py index b56b51751f..eb2c47f1dc 100644 --- a/src/bonsai/bonsai/core/drawing.py +++ b/src/bonsai/bonsai/core/drawing.py @@ -38,11 +38,14 @@ def disable_editing_text(drawing: type[tool.Drawing], obj: bpy.types.Object) -> drawing.disable_editing_text(obj) -def edit_text(drawing: type[tool.Drawing], obj: bpy.types.Object) -> None: - drawing.synchronise_ifc_and_text_attributes(obj) - drawing.update_text_size_pset(obj) - drawing.update_text_annotation_properties(obj) - drawing.disable_editing_text(obj) +def edit_text(drawing: type[tool.Drawing], attribute_obj: bpy.types.Object, apply_objs: list[bpy.types.Object]) -> None: + literal_attributes = drawing.export_text_literal_attributes(attribute_obj) + for obj in apply_objs: + drawing.edit_text_literals(obj, literal_attributes) + # TODO: font size should be part of a separate set of formatting controls, not part of text editing + drawing.update_text_size_pset(obj) + drawing.update_text_annotation_properties(obj) + drawing.disable_editing_text(obj) def enable_editing_assigned_product(drawing: type[tool.Drawing], obj: bpy.types.Object) -> None: diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index 19395fa449..a34de4d4fe 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -402,7 +402,6 @@ class Drawing: def setup_shading_styles_path(cls, resource_path): pass def show_decorations(cls): pass def sync_object_placement(cls, obj): pass - def synchronise_ifc_and_text_attributes(cls, obj): pass def update_embedded_svg_location(cls, uri, old_location, new_location): pass def update_text_annotation_properties(cls, obj): pass def update_text_size_pset(cls, obj): pass diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index 51d06c1c18..a0a45b403a 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -835,43 +835,12 @@ class Drawing(bonsai.core.tool.Drawing): return props.is_editing_sheets @classmethod - def synchronise_ifc_and_text_attributes(cls, obj: bpy.types.Object) -> None: + def edit_text_literals(cls, obj: bpy.types.Object, literal_attributes: dict) -> None: assert (element := tool.Ifc.get_entity(obj)) assert (rep := cls.get_annotation_representation(element)) - - old_literals = cls.get_text_literal(obj, return_list=True) - assert isinstance(old_literals, list) - literals_attributes = cls.export_text_literal_attributes(obj) - props = cls.get_text_props(obj) - defined_ifc_ids = [l.ifc_definition_id for l in props.literals] - ifc_file = tool.Ifc.get() - - added_literals: list[ifcopenshell.entity_instance] = [] - new_literals: list[ifcopenshell.entity_instance] = [] - for ifc_definition_id, attributes in zip(defined_ifc_ids, literals_attributes): - # making sure all literals from text edit exist in ifc - if ifc_definition_id == 0: - literal = cls.add_literal(**attributes) - added_literals.append(literal) - else: - literal = ifc_file.by_id(ifc_definition_id) - ifcopenshell.api.drawing.edit_text_literal( - ifc_file, - text_literal=literal, - attributes=attributes, - ) - new_literals.append(literal) - - removed_literals = set(old_literals) - set(new_literals) - - # Add new literals and keep the order as defined in text props. - items = [i for i in rep.Items if i not in removed_literals] + added_literals - items.sort(key=lambda x: new_literals.index(x) if x in new_literals else -1) - rep.Items = items - - # Remove from ifc the literals that were removed during the edit. - for literal in removed_literals: - ifcopenshell.util.element.remove_deep2(ifc_file, literal) + for literal in cls.get_text_literal(obj, return_list=True): + ifcopenshell.util.element.remove_deep2(tool.Ifc.get(), literal) + rep.Items = [cls.add_literal(**a) for a in literal_attributes] @classmethod def add_literal(cls, **attributes: str) -> ifcopenshell.entity_instance: From fdf23ece8576a14473a462713243f84dfbc0ff73 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Feb 2026 18:20:49 +1100 Subject: [PATCH 121/171] Fix #7632. See #2824. Optimise vertex matching trick for IfcIndexedColourMap. --- src/bonsai/bonsai/tool/loader.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/tool/loader.py b/src/bonsai/bonsai/tool/loader.py index 8b14de9362..d81fec5fd2 100644 --- a/src/bonsai/bonsai/tool/loader.py +++ b/src/bonsai/bonsai/tool/loader.py @@ -39,6 +39,7 @@ import numpy as np import numpy.typing as npt from ifcopenshell.util.shape_builder import np_to_4d from mathutils import Matrix, Vector +from mathutils.kdtree import KDTree import bonsai.bim.import_ifc import bonsai.core.tool @@ -562,7 +563,18 @@ class Loader(bonsai.core.tool.Loader): bm_verts = np.array([v.co for v in bm.verts]) coords_scaled = np.array(faceset.Coordinates.CoordList) * si_conversion - coordinates_remap = [np.argmin(np.sum((bm_verts - co) ** 2, axis=1)) for co in coords_scaled] + # See #2824. IfcIndexedColourMap is not natively handled by IfcOpenShell + # As a result, we map IFC coords to Blender coords (highly wasteful but...) + # coordinates_remap = [np.argmin(np.sum((bm_verts - co) ** 2, axis=1)) for co in coords_scaled] + # Because this is O(N*M), here is a faster KDTree implementation. + kd = KDTree(len(bm_verts)) + for i, v in enumerate(bm_verts): + kd.insert((float(v[0]), float(v[1]), float(v[2])), i) + kd.balance() + coordinates_remap = np.empty(len(coords_scaled), dtype=np.int32) + for j, co in enumerate(coords_scaled): + _co, index, _dist = kd.find((float(co[0]), float(co[1]), float(co[2]))) + coordinates_remap[j] = index # ifc indices start with 1 remap_verts_to_blender = lambda ifc_verts: [coordinates_remap[i - 1] for i in ifc_verts] From 9dff1441d7b61fa396fedd5f891521695ec37abd Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Feb 2026 18:23:39 +1100 Subject: [PATCH 122/171] See #7632. See #5848. Just disable indexed colour map loading for now, it's pretty rare. Famous last words, at least the KDTree implementation is much faster. --- src/bonsai/bonsai/bim/module/project/prop.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/project/prop.py b/src/bonsai/bonsai/bim/module/project/prop.py index ea5c9c843a..1c62c98d61 100644 --- a/src/bonsai/bonsai/bim/module/project/prop.py +++ b/src/bonsai/bonsai/bim/module/project/prop.py @@ -370,7 +370,7 @@ class BIMProjectProperties(PropertyGroup): load_indexed_maps: BoolProperty( name="Load Indexed Maps", description="Load indexed maps (UV and color maps)", - default=True, + default=False, # Very slow and hackishly implemented ) links: CollectionProperty(name="Links", type=Link) active_link_index: IntProperty(name="Active Link Index") From 95cc52a6f36ca230c3fd41646b5e281420e746c6 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 3 Feb 2026 12:28:37 +0500 Subject: [PATCH 123/171] bonsai - revive very important chaching sound `get_data_dir_path` doesn't have `filename` argument, therefore leading to an error --- src/bonsai/bonsai/tool/cost.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/bonsai/bonsai/tool/cost.py b/src/bonsai/bonsai/tool/cost.py index 771b15f43e..06e3de6779 100644 --- a/src/bonsai/bonsai/tool/cost.py +++ b/src/bonsai/bonsai/tool/cost.py @@ -151,17 +151,14 @@ class Cost(bonsai.core.tool.Cost): # TODO: make pitch higher as costs rise try: import aud + except ImportError: + return # ah well - device = aud.Device() - # chaching.mp3 is by Lucish_ CC-BY-3.0 https://freesound.org/people/Lucish_/sounds/554841/ - sound = aud.Sound(tool.Blender.get_data_dir_path(filename="chaching.mp3").__str__()) - handle = device.play(sound) - sound_buffered = aud.Sound.buffer(sound) - handle_buffered = device.play(sound_buffered) - handle.stop() - handle_buffered.stop() - except: - pass # ah well + device = aud.Device() + # chaching.mp3 is by Lucish_ CC-BY-3.0 https://freesound.org/people/Lucish_/sounds/554841/ + filepath = tool.Blender.get_data_dir_path("chaching.mp3").__str__() + sound = aud.Sound(filepath) + device.play(sound) @classmethod def load_cost_schedule_tree(cls) -> None: From 015431fa1f2395c0fd6efbc148534de7c88a257c Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 3 Feb 2026 12:31:11 +0500 Subject: [PATCH 124/171] bonsai - drop unrelated pypi `aud` module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Turned out `aud` module we had in our makefile had nothing to do with Blender built-in `uad` module 🫣 So no need to install anything from PyPI since this module is generally available in Blender --- .github/workflows/ci.yml | 1 - src/bonsai/Makefile | 3 --- src/bonsai/bonsai/tool/cost.py | 6 +----- 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a2fe8ce5d..65031e83d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,6 @@ jobs: python -m pip install --upgrade pip pip install xmlschema xsdata numpy lxml pytest isodate lark networkx tabulate python-dateutil shapely pip install src/bcf --no-deps - pip install git+https://github.com/zdhoward/aud pip install pytest-xdist==3.8.0 - name: Install C++ dependencies diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 133920bd00..864d522927 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -145,9 +145,6 @@ endif cd ../ifc5d && make dist && mv dist/*.whl ../bonsai/build/wheels/ cd ../ifccityjson && make dist && mv dist/*.whl ../bonsai/build/wheels/ cd build && . env/$(VENV_ACTIVATE) && $(PIP) download GitPython --dest=./wheels - # Provides audio playback for costing - # This is a REALLY IMPORTANT feature - cd build && . env/$(VENV_ACTIVATE) && $(PIP) wheel git+https://github.com/zdhoward/aud --wheel-dir=./wheels # IfcOpenShell dependency - support for new typing features cd build && . env/$(VENV_ACTIVATE) && $(PIP) download typing_extensions --dest=./wheels # Required by IfcCSV diff --git a/src/bonsai/bonsai/tool/cost.py b/src/bonsai/bonsai/tool/cost.py index 06e3de6779..3dcbb8e32c 100644 --- a/src/bonsai/bonsai/tool/cost.py +++ b/src/bonsai/bonsai/tool/cost.py @@ -23,6 +23,7 @@ from collections.abc import Generator from pathlib import Path from typing import TYPE_CHECKING, Any, Literal, Optional, Union, assert_never +import aud import bpy import ifcopenshell.api import ifcopenshell.api.cost @@ -149,11 +150,6 @@ class Cost(bonsai.core.tool.Cost): @classmethod def play_chaching_sound(cls) -> None: # TODO: make pitch higher as costs rise - try: - import aud - except ImportError: - return # ah well - device = aud.Device() # chaching.mp3 is by Lucish_ CC-BY-3.0 https://freesound.org/people/Lucish_/sounds/554841/ filepath = tool.Blender.get_data_dir_path("chaching.mp3").__str__() From abf0d6f81a8cb678cb3065b9675cd64d7f27553b Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 3 Feb 2026 12:32:11 +0500 Subject: [PATCH 125/171] bonsai chaching - save ears for those running the tests --- src/bonsai/bonsai/tool/cost.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/tool/cost.py b/src/bonsai/bonsai/tool/cost.py index 3dcbb8e32c..663b16040e 100644 --- a/src/bonsai/bonsai/tool/cost.py +++ b/src/bonsai/bonsai/tool/cost.py @@ -144,7 +144,8 @@ class Cost(bonsai.core.tool.Cost): @classmethod def play_sound(cls) -> None: - if tool.Blender.get_addon_preferences().should_play_chaching_sound: + # Save ears for those running the tests in background mode. + if tool.Blender.get_addon_preferences().should_play_chaching_sound and not bpy.app.background: cls.play_chaching_sound() # lol @classmethod From d6b636909f86b12e58aac14d873bd7b05a17bea9 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 3 Feb 2026 12:42:15 +0500 Subject: [PATCH 126/171] bonsai Makefile - revert d745882 Since https://github.com/LBNL-ETA/pyradiance/issues/56 is resolved now. --- src/bonsai/Makefile | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 864d522927..6b4704b7b3 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -205,23 +205,12 @@ endif cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pytz --dest=./wheels cd build && . env/$(VENV_ACTIVATE) && $(PIP) download tzfpy $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels # pyradiance is using different platform versions than defaults in our makefile. - # Temporary use `pyradiance_py313` until https://github.com/LBNL-ETA/pyradiance/issues/53 is resolved. -ifeq ($(PYVERSION), py313) -ifeq ($(PLATFORM), linux) - cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 --platform manylinux_2_28_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels -else ifeq ($(PLATFORM), macos) - cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 --platform macosx_10_13_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels -else - cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance_py313 $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels -endif -else ifeq ($(PLATFORM), linux) cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform manylinux_2_28_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else ifeq ($(PLATFORM), macos) cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform macosx_10_13_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels -endif endif # Required by ifctester web ui. cd build && . env/$(VENV_ACTIVATE) && $(PIP) download flask $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels From a62b177b194735b6232fa56de53cf9cbd4f84448 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 3 Feb 2026 19:20:01 +0500 Subject: [PATCH 127/171] Bonsai - fix error drag'n'dropping ifc files in Blender 4.5.6 Example error: ``` Error: Couldn't find IFC file: 'L:/OD_Cool_Car_Guys.ifc'. Traceback (most recent call last): File "\Blender Foundation\Blender\4.5\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\project\operator.py", line 2759, in invoke return bpy.ops.bim.load_project(filepath=(filepath / clean_up_path(self.files[0].name)).as_posix()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "\blender-4.5.6-lts.a78963ed6435\4.5\scripts\modules\bpy\ops.py", line 109, in __call__ ret = _op_call(self.idname_py(), kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: Error: Couldn't find IFC file: 'L:/OD_Cool_Car_Guys.ifc'. ``` --- src/bonsai/bonsai/bim/module/project/operator.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index 8fad709de3..b6f63f13ca 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -2735,17 +2735,27 @@ class IFCFileHandlerOperator(bpy.types.Operator): # Keeping code in .invoke() as we'll probably add some # popup windows later. + def clean_up_path(path: str) -> str: + # In Blender 4.5.6 there was a bug producing unncesseary double slash prefix + # breaking the paths. Issue is not present in 5.0+ and presumably will be solved in 4.5.7 too. + # https://projects.blender.org/blender/blender/issues/153822 + if bpy.app.version == (4, 5, 6): + blender_prefix = "//" + if path.startswith(blender_prefix): + return path.removeprefix(blender_prefix) + return path + # `files` contain only .ifc files. filepath = Path(self.directory) # If user is just drag'n'dropping a single file -> load it as a new project, # if they're holding ALT -> link the file/files to the current project. if event.alt: # Passing self.files directly results in TypeError. - serialized_files = [{"name": f.name} for f in self.files] + serialized_files = [{"name": clean_up_path(f.name)} for f in self.files] return bpy.ops.bim.link_ifc(directory=self.directory, files=serialized_files) else: if len(self.files) == 1: - return bpy.ops.bim.load_project(filepath=(filepath / self.files[0].name).as_posix()) + return bpy.ops.bim.load_project(filepath=(filepath / clean_up_path(self.files[0].name)).as_posix()) else: self.report( {"INFO"}, From 95480a231c9f3404130207a31809a7235a242002 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 18:00:01 +0500 Subject: [PATCH 128/171] Move handling legacy mathutils buffer types to separate methods --- .../bonsai/bim/module/drawing/decoration.py | 32 ++++++++----------- src/bonsai/bonsai/tool/blender.py | 31 +++++++++++++++++- src/bonsai/bonsai/tool/geometry.py | 5 ++- src/bonsai/bonsai/tool/ifc.py | 21 ++++-------- src/bonsai/test/tool/test_geometry.py | 4 +-- 5 files changed, 54 insertions(+), 39 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/decoration.py b/src/bonsai/bonsai/bim/module/drawing/decoration.py index 0a6bc967bf..705fabfcf9 100644 --- a/src/bonsai/bonsai/bim/module/drawing/decoration.py +++ b/src/bonsai/bonsai/bim/module/drawing/decoration.py @@ -1762,40 +1762,34 @@ class CutDecorator: shader.uniform_float("color", color) batch.draw(shader) - def cache_camera_matrix(self): + def cache_camera_matrix(self) -> None: + assert bpy.context.scene and bpy.context.scene.camera obj = bpy.context.scene.camera - # Explicit `dtype` for Blender <5.0 compatibility. DecoratorData.camera_location_checksum = repr( - np.array(obj.matrix_world.translation, dtype=np.float32).tobytes() + tool.Blender.np_array_legacy(obj.matrix_world.translation).tobytes() ) - DecoratorData.camera_rotation_checksum = repr(np.array(obj.matrix_world.to_3x3(), dtype=np.float32).tobytes()) + DecoratorData.camera_rotation_checksum = repr(tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()).tobytes()) - def is_camera_moved(self): + def is_camera_moved(self) -> bool: if not DecoratorData.camera_location_checksum: self.cache_camera_matrix() return True # Let's be conservative + + assert bpy.context.scene and bpy.context.scene.camera obj = bpy.context.scene.camera # Handle both old float64 and new float32 checksums for version compatibility - loc_checksum_bytes = eval(DecoratorData.camera_location_checksum) - if len(loc_checksum_bytes) == 24: # Old format: 3 * 8 bytes (float64) - loc_check = np.frombuffer(loc_checksum_bytes, dtype=np.float64).astype(np.float32) - else: # New format: 3 * 4 bytes (float32) - loc_check = np.frombuffer(loc_checksum_bytes, dtype=np.float32) - - loc_real = np.array(obj.matrix_world.translation, dtype=np.float32).flatten() + loc_checksum_bytes: bytes = eval(DecoratorData.camera_location_checksum) + loc_check = tool.Blender.np_frombuffer_legacy(loc_checksum_bytes, 3) + loc_real = tool.Blender.np_array_legacy(obj.matrix_world.translation) if not np.allclose(loc_check, loc_real, atol=1e-4): # 0.1 mm self.cache_camera_matrix() return True # Handle both old float64 and new float32 checksums for version compatibility - rot_checksum_bytes = eval(DecoratorData.camera_rotation_checksum) - if len(rot_checksum_bytes) == 72: # Old format: 9 * 8 bytes (float64) - rot_check = np.frombuffer(rot_checksum_bytes, dtype=np.float64).astype(np.float32).reshape(3, 3) - else: # New format: 9 * 4 bytes (float32) - rot_check = np.frombuffer(rot_checksum_bytes, dtype=np.float32).reshape(3, 3) - - rot_real = np.array(obj.matrix_world.to_3x3(), dtype=np.float32) + rot_checksum_bytes: bytes = eval(DecoratorData.camera_rotation_checksum) + rot_check = tool.Blender.np_frombuffer_legacy(rot_checksum_bytes, 9) + rot_real = tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()) rot_dot = np.dot(rot_check, rot_real.T) angle_rad = np.arccos(np.clip((np.trace(rot_dot) - 1) / 2, -1, 1)) if angle_rad > 0.0017453292519943296: # 0.1 degrees diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index d4491e104a..b78772fbc5 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -49,7 +49,7 @@ import ifcopenshell.util.element import numpy as np import numpy.typing as npt from ifcopenshell import entity_instance -from mathutils import Vector +from mathutils import Matrix, Vector import bonsai.bim import bonsai.core.tool @@ -2127,3 +2127,32 @@ class Blender(bonsai.core.tool.Blender): if cls.BLENDER_5: return "BLENDER_EEVEE" return "BLENDER_EEVEE_NEXT" + + @classmethod + def np_frombuffer_legacy(cls, bytedata: bytes, n: int) -> npt.NDArray[np.float32]: + """ + Read ``n`` float values from ``bytedata``, regardless if they are stored as ``float32`` or ``float64``. + Needed to support .blend files saved in Blender <5.0.0. + Also allows to work with .blend files from 5.0.0+ in older Blender versions. + + In ``bpy.app.version >= 5.0.0`` ``mathutils`` transitioned to use ``float32`` buffer type, + while in previous version they were using ``float64``. + In some cases we are storing raw bytes (e.g. object transforms cheksums), so old .blend files + might still have ``float64`` data stored. + + See https://projects.blender.org/blender/blender/issues/149283 + """ + if len(bytedata) == (n * 2): + return np.frombuffer(bytedata, dtype=np.float64).astype(np.float32) + return np.frombuffer(bytedata, dtype=np.float32) + + @classmethod + def np_array_legacy(cls, mathutils_type: Union[Vector, Matrix]) -> npt.NDArray[np.float32]: + """ + Converts ``mathutils`` types to ``np.float32`` arrays, regardless of Blender version. + + See ``np_frombuffer_legacy`` for more details. + """ + if cls.BLENDER_5: + return np.array(mathutils_type) + return np.array(mathutils_type, dtype=np.float32) diff --git a/src/bonsai/bonsai/tool/geometry.py b/src/bonsai/bonsai/tool/geometry.py index 5a6429adfe..13ec6695d2 100644 --- a/src/bonsai/bonsai/tool/geometry.py +++ b/src/bonsai/bonsai/tool/geometry.py @@ -1152,9 +1152,8 @@ class Geometry(bonsai.core.tool.Geometry): def record_object_position(cls, obj: bpy.types.Object) -> None: # These are recorded separately because they have different numerical tolerances props = tool.Blender.get_object_bim_props(obj) - # Explicit dtype for Blender <5.0 compatibility. - props.location_checksum = repr(np.array(obj.matrix_world.translation, dtype=np.float32).tobytes()) - props.rotation_checksum = repr(np.array(obj.matrix_world.to_3x3(), dtype=np.float32).tobytes()) + props.location_checksum = repr(tool.Blender.np_array_legacy(obj.matrix_world.translation).tobytes()) + props.rotation_checksum = repr(tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()).tobytes()) @classmethod def remove_connection(cls, connection: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/tool/ifc.py b/src/bonsai/bonsai/tool/ifc.py index 81c5202c19..8cbd2a112b 100644 --- a/src/bonsai/bonsai/tool/ifc.py +++ b/src/bonsai/bonsai/tool/ifc.py @@ -115,24 +115,17 @@ class Ifc(bonsai.core.tool.Ifc): return True # Let's be conservative # Handle both old float64 and new float32 checksums for version compatibility - loc_checksum_bytes = eval(oprops.location_checksum) - if len(loc_checksum_bytes) == 24: # Old format: 3 * 8 bytes (float64) - loc_check = np.frombuffer(loc_checksum_bytes, dtype=np.float64).astype(np.float32) - else: # New format: 3 * 4 bytes (float32) - loc_check = np.frombuffer(loc_checksum_bytes, dtype=np.float32) - - loc_real = np.array(obj.matrix_world.translation, dtype=np.float32).flatten() + loc_checksum_bytes: bytes = eval(oprops.location_checksum) + loc_check = tool.Blender.np_frombuffer_legacy(loc_checksum_bytes, 3) + loc_real = tool.Blender.np_array_legacy(obj.matrix_world.translation) if not np.allclose(loc_check, loc_real, atol=1e-4): # 0.1 mm return True # Handle both old float64 and new float32 checksums for version compatibility - rot_checksum_bytes = eval(oprops.rotation_checksum) - if len(rot_checksum_bytes) == 72: # Old format: 9 * 8 bytes (float64) - rot_check = np.frombuffer(rot_checksum_bytes, dtype=np.float64).astype(np.float32).reshape(3, 3) - else: # New format: 9 * 4 bytes (float32) - rot_check = np.frombuffer(rot_checksum_bytes, dtype=np.float32).reshape(3, 3) - - rot_real = np.array(obj.matrix_world.to_3x3(), dtype=np.float32) + rot_checksum_bytes: bytes = eval(oprops.rotation_checksum) + rot_check = tool.Blender.np_frombuffer_legacy(rot_checksum_bytes, 9) + rot_check = rot_check.reshape(3, 3) + rot_real = tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()) rot_dot = np.dot(rot_check, rot_real.T) angle_rad = np.arccos(np.clip((np.trace(rot_dot) - 1) / 2, -1, 1)) if angle_rad > 0.0017453292519943296: # 0.1 degrees diff --git a/src/bonsai/test/tool/test_geometry.py b/src/bonsai/test/tool/test_geometry.py index 34300f2405..424e1fd876 100644 --- a/src/bonsai/test/tool/test_geometry.py +++ b/src/bonsai/test/tool/test_geometry.py @@ -323,8 +323,8 @@ class TestRecordObjectPosition(NewFile): obj = bpy.data.objects.new("Object", None) props = tool.Blender.get_object_bim_props(obj) subject.record_object_position(obj) - assert props.location_checksum == repr(np.array(obj.matrix_world.translation, dtype=np.float32).tobytes()) - assert props.rotation_checksum == repr(np.array(obj.matrix_world.to_3x3(), dtype=np.float32).tobytes()) + assert props.location_checksum == repr(tool.Blender.np_array_legacy(obj.matrix_world.translation).tobytes()) + assert props.rotation_checksum == repr(tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()).tobytes()) class TestRemoveConnection(NewFile): From 50d00eba2031a2b571fd391d49394bd570868fa5 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 18:00:07 +0500 Subject: [PATCH 129/171] black . --- src/bonsai/bonsai/bim/module/model/profile.py | 3 +-- src/bonsai/bonsai/bim/module/project/prop.py | 2 +- src/bonsai/bonsai/bim/module/root/data.py | 4 ++-- src/bonsai/bonsai/bim/module/root/operator.py | 4 +++- src/bonsai/bonsai/bim/module/system/operator.py | 17 ++++++++--------- src/bonsai/bonsai/bim/module/system/ui.py | 4 +++- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index 0a11fa191b..572898c484 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -1136,8 +1136,7 @@ class DrawPolylineProfile(bpy.types.Operator, PolylineOperator, tool.Ifc.Operato DumbProfileJoiner().join_V(profile2["obj"], profile1["obj"]) if connect_IfcFlowSegments: bpy.ops.bim.mep_connect_elements( - obj1_name=profile1["obj"].name, - obj2_name=profile2["obj"].name + obj1_name=profile1["obj"].name, obj2_name=profile2["obj"].name ) def modal(self, context, event): diff --git a/src/bonsai/bonsai/bim/module/project/prop.py b/src/bonsai/bonsai/bim/module/project/prop.py index 1c62c98d61..08859af1f9 100644 --- a/src/bonsai/bonsai/bim/module/project/prop.py +++ b/src/bonsai/bonsai/bim/module/project/prop.py @@ -370,7 +370,7 @@ class BIMProjectProperties(PropertyGroup): load_indexed_maps: BoolProperty( name="Load Indexed Maps", description="Load indexed maps (UV and color maps)", - default=False, # Very slow and hackishly implemented + default=False, # Very slow and hackishly implemented ) links: CollectionProperty(name="Links", type=Link) active_link_index: IntProperty(name="Active Link Index") diff --git a/src/bonsai/bonsai/bim/module/root/data.py b/src/bonsai/bonsai/bim/module/root/data.py index 50f3248d8f..7adf7b5fb9 100644 --- a/src/bonsai/bonsai/bim/module/root/data.py +++ b/src/bonsai/bonsai/bim/module/root/data.py @@ -172,7 +172,7 @@ class IfcClassData: ), ) ) - if (ifc_class and "IfcCableCarrierSegment" in ifc_class): + if ifc_class and "IfcCableCarrierSegment" in ifc_class: templates.extend( ( ( @@ -182,7 +182,7 @@ class IfcClassData: ), ) ) - + if ifc_class.endswith("Type") or ifc_class.endswith("Style"): templates.extend( [ diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index 983429d311..ac766172bd 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -703,7 +703,9 @@ class AddElement(bpy.types.Operator, tool.Ifc.Operator): default_thickness = 0.005 default_inner_fillet_radius = 0.005 default_outer_fillet_radius = 0.005 - profile_name = f"{props.ifc_class}-{default_x_dim*1000}x{default_y_dim*1000}x{default_thickness*1000}" + profile_name = ( + f"{props.ifc_class}-{default_x_dim*1000}x{default_y_dim*1000}x{default_thickness*1000}" + ) profile = tool.Ifc.get().create_entity( "IfcRectangleHollowProfileDef", ProfileName=profile_name, diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index 18e8d91d88..089bd9f24b 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -488,12 +488,11 @@ class EstablishPathDirection(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): connected_port = tool.Ifc.get().by_id(self.port_id) - - + if not connected_port or not connected_port.is_a("IfcDistributionPort"): self.report({"ERROR"}, "Invalid port specified.") return {"CANCELLED"} - + direction_map = { "SOURCE": "SINK", "SINK": "SOURCE", @@ -503,28 +502,28 @@ class EstablishPathDirection(bpy.types.Operator, tool.Ifc.Operator): next_element = tool.System.get_port_relating_element(connected_port) ports = tool.System.get_ports(next_element) segments_processed = 0 - while (len(ports) == 2): + while len(ports) == 2: if ports[0].id() == connected_port.id(): other_port = ports[1] else: other_port = ports[0] - + new_direction = direction_map.get(connected_port.FlowDirection, "NOTDEFINED") other_port.FlowDirection = new_direction segments_processed += 1 - + connected_port = tool.System.get_connected_port(other_port) if not connected_port: break connected_port.FlowDirection = direction_map.get(other_port.FlowDirection, "NOTDEFINED") next_element = tool.System.get_port_relating_element(connected_port) - + if not next_element.is_a("IfcFlowSegment"): print(f"DEBUG: next_element is not IfcFlowSegment, stopping") break - + ports = tool.System.get_ports(next_element) - + self.report({"INFO"}, f"Established path direction through {segments_processed} flow segment(s).") return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index a3d73c10f6..e8f8b7daeb 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -333,7 +333,9 @@ class BIM_PT_port(Panel): else: cols[7].label(text="", icon="BLANK1") cols[8].label(text="") - cols[9].operator("bim.establish_path_direction", text="", icon="CON_FOLLOWPATH").port_id = connected_port.id() + cols[9].operator("bim.establish_path_direction", text="", icon="CON_FOLLOWPATH").port_id = ( + connected_port.id() + ) else: cols[4].label(text="", icon="BLANK1") cols[5].label(text="", icon="BLANK1") From f10d4602fca23e05dcc62433c70e06ff9e92d609 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 19:21:02 +0500 Subject: [PATCH 130/171] typing --- .../bonsai/bim/module/search/operator.py | 72 ++++++++++--------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/search/operator.py b/src/bonsai/bonsai/bim/module/search/operator.py index 47e87a3caa..f57a313502 100644 --- a/src/bonsai/bonsai/bim/module/search/operator.py +++ b/src/bonsai/bonsai/bim/module/search/operator.py @@ -45,8 +45,12 @@ import bonsai.tool as tool from bonsai.bim.ifc import IfcStore from bonsai.bim.prop import StrProperty +if TYPE_CHECKING: + from bonsai.bim.prop import BIMFacet -def draw_text_editor_header(self, context): + +def draw_text_editor_header(self: bpy.types.TEXT_HT_header, context: bpy.types.Context) -> None: + assert isinstance(context.space_data, bpy.types.SpaceTextEditor) if context.space_data.text and context.space_data.text.name.startswith("FilterQuery_"): layout = self.layout layout.separator() @@ -160,6 +164,7 @@ class FilterValueSuggestions(Operator): def draw(self, context): layout = self.layout + assert layout filter_groups = tool.Search.get_filter_groups(self.module) ifc_filter = filter_groups[self.group_index].filters[self.filter_index] @@ -202,8 +207,8 @@ class FilterValueSuggestions(Operator): results_are_suggestions=True, ) - def get_suggestions(self, ifc_file, ifc_filter): - suggestions = set() + def get_suggestions(self, ifc_file: ifcopenshell.file, ifc_filter: "BIMFacet") -> set[str]: + suggestions: set[str] = set() if ifc_filter.type == "entity": suggestions = self.get_entity_suggestions(ifc_file) @@ -236,8 +241,8 @@ class FilterValueSuggestions(Operator): return suggestions - def build_hierarchy_path(self, element): - path = [] + def build_hierarchy_path(self, element: ifcopenshell.entity_instance) -> list[str]: + path: list[str] = [] current = element while current: @@ -262,8 +267,8 @@ class FilterValueSuggestions(Operator): return path - def get_entity_suggestions(self, ifc_file): - all_classes = set() + def get_entity_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + all_classes: set[str] = set() schema = tool.Ifc.schema() for element_id in IfcStore.id_map.keys(): @@ -273,11 +278,13 @@ class FilterValueSuggestions(Operator): try: entity = schema.declaration_by_name(class_name).as_entity() + assert entity current = entity chain_names = [class_name] while current.supertype(): supertype = current.supertype() + assert supertype chain_names.insert(0, supertype.name()) current = supertype @@ -295,8 +302,8 @@ class FilterValueSuggestions(Operator): return all_classes - def get_type_suggestions(self, ifc_file): - suggestions = set() + def get_type_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() for element_type in ifc_file.by_type("IfcTypeObject"): if element_type.Name: hierarchy_path = self.build_hierarchy_path(element_type) @@ -306,15 +313,15 @@ class FilterValueSuggestions(Operator): suggestions.add(element_type.Name) return suggestions - def get_material_suggestions(self, ifc_file): + def get_material_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: suggestions = set() for material in ifc_file.by_type("IfcMaterial"): if material.Name: suggestions.add(material.Name) return suggestions - def get_location_suggestions(self, ifc_file): - suggestions = set() + def get_location_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() for spatial in ifc_file.by_type("IfcSpatialStructureElement"): if spatial.Name: hierarchy_path = self.build_hierarchy_path(spatial) @@ -324,8 +331,8 @@ class FilterValueSuggestions(Operator): suggestions.add(spatial.Name) return suggestions - def get_group_suggestions(self, ifc_file): - suggestions = set() + def get_group_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() for group in ifc_file.by_type("IfcGroup"): if group.Name: hierarchy_path = self.build_hierarchy_path(group) @@ -335,15 +342,15 @@ class FilterValueSuggestions(Operator): suggestions.add(group.Name) return suggestions - def get_classification_suggestions(self, ifc_file): - suggestions = set() + def get_classification_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() for ref in ifc_file.by_type("IfcClassificationReference"): if ref.Identification: suggestions.add(ref.Identification) return suggestions - def get_parent_suggestions(self, ifc_file): - suggestions = set() + def get_parent_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() for element_id in IfcStore.id_map.keys(): try: element = ifc_file.by_id(element_id) @@ -371,9 +378,9 @@ class FilterValueSuggestions(Operator): return suggestions - def get_instance_suggestions(self, ifc_file): - suggestions = set() - element_data = [] + def get_instance_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() + element_data: list[tuple[str, str]] = [] for element_id in IfcStore.id_map.keys(): try: @@ -392,7 +399,7 @@ class FilterValueSuggestions(Operator): except: continue - display_counts = {} + display_counts: dict[str, int] = {} for display_str, global_id in element_data: display_counts[display_str] = display_counts.get(display_str, 0) + 1 @@ -404,8 +411,8 @@ class FilterValueSuggestions(Operator): return suggestions - def get_property_sets(self, ifc_file): - psets = set() + def get_property_sets(self, ifc_file: ifcopenshell.file) -> set[str]: + psets: set[str] = set() for element_id in IfcStore.id_map.keys(): try: element = ifc_file.by_id(element_id) @@ -418,8 +425,8 @@ class FilterValueSuggestions(Operator): continue return psets - def get_property_names(self, ifc_file, pset_name): - property_names = set() + def get_property_names(self, ifc_file: ifcopenshell.file, pset_name: str) -> set[str]: + property_names: set[str] = set() for element_id in IfcStore.id_map.keys(): try: element = ifc_file.by_id(element_id) @@ -435,8 +442,8 @@ class FilterValueSuggestions(Operator): continue return property_names - def get_property_values(self, ifc_file, pset_name, property_name): - property_values = set() + def get_property_values(self, ifc_file: ifcopenshell.file, pset_name: str, property_name: str) -> set[str]: + property_values: set[str] = set() for element_id in IfcStore.id_map.keys(): try: element = ifc_file.by_id(element_id) @@ -462,8 +469,8 @@ class FilterValueSuggestions(Operator): continue return property_values - def get_attribute_names(self, ifc_file): - attribute_names = set() + def get_attribute_names(self, ifc_file: ifcopenshell.file) -> set[str]: + attribute_names: set[str] = set() schema = tool.Ifc.schema() ifc_classes = set() @@ -477,6 +484,7 @@ class FilterValueSuggestions(Operator): for ifc_class in ifc_classes: try: entity = schema.declaration_by_name(ifc_class).as_entity() + assert entity attributes = entity.all_attributes() for attr in attributes: attribute_names.add(attr.name()) @@ -485,8 +493,8 @@ class FilterValueSuggestions(Operator): return attribute_names - def get_attribute_values(self, ifc_file, attribute_name): - attribute_values = set() + def get_attribute_values(self, ifc_file: ifcopenshell.file, attribute_name: str) -> set[str]: + attribute_values: set[str] = set() for element_id in IfcStore.id_map.keys(): try: From 2f586d6b9e93c71c7128c3c8c5e66d6361da8ff0 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 19:44:09 +0500 Subject: [PATCH 131/171] bonsai prefs - shorten some description strings for readibility --- src/bonsai/bonsai/bim/ui.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index f90d2165fb..d224761609 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -721,13 +721,20 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): chain_filter_with_set_operations: BoolProperty( name="NEW Filter mode: Enable chained filters with set operations", - description="Enable chaining search filters with set operations: ADD (union: combine sets), SUBTRACT (difference: remove from set), FILTER (intersection: only elements in both sets), with autocomplete suggestions for filter values", + description=( + "Enable chaining search filters with set operations: " + "ADD (union: combine sets), SUBTRACT (difference: remove from set), " + "FILTER (intersection: only elements in both sets), with autocomplete suggestions for filter values" + ), default=False, ) save_metadata_blend_file: BoolProperty( name="Save non ifc data to metadata blend File", - description="Save session data (window layout, settings) to a metadata blend file alongside the IFC file. This file is automatically loaded when opening the project.", + description=( + "Save session data (window layout, settings) to a metadata blend file alongside the IFC file. " + "This file is automatically loaded when opening the project." + ), default=False, ) metadata_blend_file_suffix: StringProperty( From 7411da2ae87a02bda70f5b1f6897d6ad8236d7aa Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 19:46:35 +0500 Subject: [PATCH 132/171] bim.search - fix error when unselectable objects get in the way #7635 --- src/bonsai/bonsai/bim/module/search/operator.py | 9 ++++----- src/bonsai/bonsai/tool/blender.py | 10 ++++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/search/operator.py b/src/bonsai/bonsai/bim/module/search/operator.py index f57a313502..83f401a122 100644 --- a/src/bonsai/bonsai/bim/module/search/operator.py +++ b/src/bonsai/bonsai/bim/module/search/operator.py @@ -788,11 +788,10 @@ class Search(Operator): ) objs = [obj for e in results if isinstance(obj := tool.Ifc.get_object(e), bpy.types.Object)] - for obj in objs: - tool.Blender.set_object_selection(obj) - if objs: - tool.Blender.set_active_object(objs[0]) - self.report({"INFO"}, f"{len(results)} Results.") + active_object = next(iter(objs), None) + selection = tool.Blender.validate_object_selection(context, active_object, objs) + tool.Blender.set_objects_selection(*selection, clear_previous_selection=False) + self.report({"INFO"}, f"{len(results)} Results, {len(selection.selected_objects)} Objects Selected") return {"FINISHED"} diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index b78772fbc5..80694917a5 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -36,6 +36,7 @@ from typing import ( TYPE_CHECKING, Any, Literal, + NamedTuple, Optional, TypeVar, Union, @@ -718,13 +719,18 @@ class Blender(bonsai.core.tool.Blender): if active_object: active_object.select_set(True) + class ObjectsSelectionArgs(NamedTuple): + context: bpy.types.Context + active_object: bpy.types.Object | None + selected_objects: list[bpy.types.Object] + @classmethod def validate_object_selection( cls, context: bpy.types.Context, active_object: Union[bpy.types.Object, None] = None, selected_objects: Sequence[bpy.types.Object] = (), - ) -> tuple[bpy.types.Context, Union[bpy.types.Object, None], list[bpy.types.Object]]: + ) -> ObjectsSelectionArgs: """Validate object selection and return only valid objects. Can be used before ``set_objects_selection`` to avoid errors @@ -739,7 +745,7 @@ class Blender(bonsai.core.tool.Blender): if active_object and not cls.is_valid_data_block(active_object): active_object = None - return context, active_object, new_selected_objects + return cls.ObjectsSelectionArgs(context, active_object, new_selected_objects) @classmethod def clear_objects_selection(cls) -> None: From 7e1843b96224cd195ac7bcc79ddaa4efbd928083 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 19:49:31 +0500 Subject: [PATCH 133/171] dev_environment - support Blender 5.1 with Python 3.13 --- src/bonsai/scripts/dev_environment.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bonsai/scripts/dev_environment.py b/src/bonsai/scripts/dev_environment.py index d16edad96d..e9a8d2a44f 100644 --- a/src/bonsai/scripts/dev_environment.py +++ b/src/bonsai/scripts/dev_environment.py @@ -78,7 +78,8 @@ BONSAI_PATH = find_bonsai_path() # --------------------------- # Never changed by user. -PACKAGE_PATH = BLENDER_PATH / r"extensions/.local/lib/python3.11/site-packages" +PYTHON_VERSION = "3.13" if BLENDER_VERSION == "5.1" else "3.11" +PACKAGE_PATH = BLENDER_PATH / rf"extensions/.local/lib/python{PYTHON_VERSION}/site-packages" def main() -> None: From 79ef6eb55c337a4804d1480c992eb7148603a14f Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 19:55:35 +0500 Subject: [PATCH 134/171] validate_object_selection - fix missing check for active object not present in a view layer --- src/bonsai/bonsai/tool/blender.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index 80694917a5..e499f35106 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -740,9 +740,12 @@ class Blender(bonsai.core.tool.Blender): assert context.view_layer view_layer_objects = set(context.view_layer.objects) - new_selected_objects = [o for o in selected_objects if cls.is_valid_data_block(o) and o in view_layer_objects] + def is_selectable(obj: bpy.types.Object) -> bool: + return cls.is_valid_data_block(obj) and obj in view_layer_objects - if active_object and not cls.is_valid_data_block(active_object): + new_selected_objects = [o for o in selected_objects if is_selectable(o)] + + if active_object and not is_selectable(active_object): active_object = None return cls.ObjectsSelectionArgs(context, active_object, new_selected_objects) From a54b21b838edd49636634e78ee44eb6430db86a7 Mon Sep 17 00:00:00 2001 From: Richard Brice <37087370+RickBrice@users.noreply.github.com> Date: Thu, 5 Feb 2026 04:37:58 -0800 Subject: [PATCH 135/171] Fixes documentation and adds test for expected type --- .../api/alignment/_create_offset_curve_representation.py | 7 ++++++- .../ifcopenshell/api/alignment/create_as_offset_curve.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py index 6850013c96..bb3fa6cbe8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py @@ -28,7 +28,7 @@ def _create_offset_curve_representation( file: ifcopenshell.file, alignment: entity_instance, offsets: Sequence[entity_instance] ) -> None: """ - Create geometric representation for the alignment based on an IfcPolyline + Create geometric representation for the alignment based on an IfcOffsetByDistances curve :param alignment: The alignment for which the representation is being created :return: None @@ -36,6 +36,11 @@ def _create_offset_curve_representation( expected_type = "IfcAlignment" if not alignment.is_a(expected_type): raise TypeError(f"Expected {expected_type} but got {alignment.is_a()}") + + expected_type = "IfcPointByDistaceExpression" + for offset in offsets: + if not offset.is_a(expected_type): + raise TypeError(f"Expected {expected_type} but got {offset.is_a()}") axis_geom_subcontext = ifcopenshell.api.alignment.get_axis_subcontext(file) diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py index b24fb16b29..6ac56af362 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py @@ -39,7 +39,7 @@ def create_as_offset_curve( :param file: :param name: name assigned to IfcAlignment.Name - :param offsets: offsets from the basis curve that defines the offset curve, expected to be IfcOffsetCurveByDistances. + :param offsets: offsets from the basis curve that defines the offset curve, expected to be IfcPointByDistanceExpression. :param start_station: station value at the start of the alignment :return: Returns an IfcAlignment """ From 2692341d3ad7c921412b3c8ab7f4f05801207e1f Mon Sep 17 00:00:00 2001 From: Richard Brice <37087370+RickBrice@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:10:33 -0800 Subject: [PATCH 136/171] Fixes typo --- .../api/alignment/_create_offset_curve_representation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py index bb3fa6cbe8..a5675a4dc2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py @@ -37,7 +37,7 @@ def _create_offset_curve_representation( if not alignment.is_a(expected_type): raise TypeError(f"Expected {expected_type} but got {alignment.is_a()}") - expected_type = "IfcPointByDistaceExpression" + expected_type = "IfcPointByDistanceExpression" for offset in offsets: if not offset.is_a(expected_type): raise TypeError(f"Expected {expected_type} but got {offset.is_a()}") From 5e9f97a0c7a7776f744d8ef899042635c2dd96e1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Feb 2026 16:12:14 +1100 Subject: [PATCH 137/171] Fix #5220. See #7629. See #7505. Reimplement text bulk copying using established copy attribute paradigm. Previously, copy attribution was coupled with text editing. This meant that you couldn't just do something like change the font or alignment without also affecting literals. Now like most apps you can just select bunch of text and change font size etc, using the same UI look and feel that copying attribute has when editing attributes. This refactor also removes the need for explicit props tracking each possible attribute to copy, and the settings collection group. Bulk applying is now done in core with no calls to UI. --- .../bonsai/bim/module/drawing/__init__.py | 2 +- src/bonsai/bonsai/bim/module/drawing/data.py | 4 - .../bonsai/bim/module/drawing/operator.py | 28 ++-- src/bonsai/bonsai/bim/module/drawing/prop.py | 82 ++++------- .../bonsai/bim/module/drawing/svgwriter.py | 11 +- src/bonsai/bonsai/bim/module/drawing/ui.py | 137 ++++++++---------- src/bonsai/bonsai/core/drawing.py | 41 +++++- src/bonsai/bonsai/core/tool.py | 7 +- src/bonsai/bonsai/tool/drawing.py | 73 ++++++---- 9 files changed, 192 insertions(+), 193 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/__init__.py b/src/bonsai/bonsai/bim/module/drawing/__init__.py index 67a9ed0853..9f172ce2bb 100644 --- a/src/bonsai/bonsai/bim/module/drawing/__init__.py +++ b/src/bonsai/bonsai/bim/module/drawing/__init__.py @@ -45,6 +45,7 @@ classes = ( operator.CleanWireframes, operator.ContractSheet, operator.ConvertSVGToDXF, + operator.CopyTextToSelection, operator.CreateDrawing, operator.CreateSheets, operator.DisableAddAnnotationType, @@ -115,7 +116,6 @@ classes = ( prop.BIMCameraProperties, prop.ElementValueRow, prop.LiteralProps, - prop.LiteralApplySettings, prop.BIMTextProperties, prop.BIMAssignedProductProperties, prop.BIMAnnotationProperties, diff --git a/src/bonsai/bonsai/bim/module/drawing/data.py b/src/bonsai/bonsai/bim/module/drawing/data.py index ed457a7bbf..a4396d84c5 100644 --- a/src/bonsai/bonsai/bim/module/drawing/data.py +++ b/src/bonsai/bonsai/bim/module/drawing/data.py @@ -355,8 +355,6 @@ class DecoratorData: font_size = FONT_SIZES[font_size_type] symbol = tool.Drawing.get_annotation_symbol(element) newline_at = pset_data.get("Newline_At", 0) - reverse_list = pset_data.get("Reverse_List", False) - list_separator = pset_data.get("List_Separator") or ", " # other attributes literals = tool.Drawing.get_text_literal(obj, return_list=True) @@ -384,8 +382,6 @@ class DecoratorData: "FontSize": font_size, "Symbol": symbol, "Newline_At": newline_at, - "Reverse_List": reverse_list, - "List_Separator": list_separator, } @classmethod diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 4c52993aa0..d02e4c6c76 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -3181,9 +3181,20 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.edit_text" bl_label = "Edit Text" bl_description = "Save changes to the text annotation and\ndisable the text editing options" - bl_options = {"REGISTER", "UNDO"} + def _execute(self, context): + core.edit_text(tool.Drawing, obj=tool.Blender.get_active_object()) + tool.Blender.update_viewport() + + +class CopyTextToSelection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.copy_text_to_selection" + bl_label = "Copy Text To Selection" + bl_description = "Copy text formatting or literals to selected objects" + bl_options = {"REGISTER", "UNDO"} + attribute: bpy.props.StringProperty() + def _execute(self, context): apply_objs = [ obj @@ -3191,7 +3202,12 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): if (element := tool.Ifc.get_entity(obj)) and tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]) ] - core.edit_text(tool.Drawing, attribute_obj=tool.Blender.get_active_object(), apply_objs=apply_objs) + core.copy_text_to_selection( + tool.Drawing, + attribute=self.attribute, + attribute_obj=tool.Blender.get_active_object(), + apply_objs=apply_objs, + ) tool.Blender.update_viewport() @@ -3207,8 +3223,6 @@ class EnableEditingText(bpy.types.Operator, tool.Ifc.Operator): props = tool.Drawing.get_text_props(obj) core.enable_editing_text(tool.Drawing, obj=obj) - props.ensure_literal_apply_settings(len(props.literals)) - text_element = tool.Ifc.get_entity(obj) assigned_product_entity = tool.Drawing.get_assigned_product(text_element) if text_element else None assigned_product_obj = tool.Ifc.get_object(assigned_product_entity) if assigned_product_entity else None @@ -3297,9 +3311,6 @@ class AddTextLiteral(bpy.types.Operator): box_alignment_mask = [False] * 9 box_alignment_mask[6] = True # bottom_left box_alignment literal_props.box_alignment = box_alignment_mask - - props.ensure_literal_apply_settings(len(props.literals)) - return {"FINISHED"} @@ -3318,9 +3329,6 @@ class RemoveTextLiteral(bpy.types.Operator): props = tool.Drawing.get_text_props(obj) props.literals.remove(self.literal_prop_id) tool.Blender.update_viewport() - - props.ensure_literal_apply_settings(len(props.literals)) - return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/drawing/prop.py b/src/bonsai/bonsai/bim/module/drawing/prop.py index 3b7040bc02..b323b8d41e 100644 --- a/src/bonsai/bonsai/bim/module/drawing/prop.py +++ b/src/bonsai/bonsai/bim/module/drawing/prop.py @@ -872,22 +872,20 @@ class LiteralProps(PropertyGroup): category_for_adding: str -class LiteralApplySettings(PropertyGroup): - literal_index: IntProperty(name="Literal Index") - apply_text_to_all: BoolProperty(name="Apply Text to All", default=False) - apply_path_to_all: BoolProperty(name="Apply Path to All", default=False) - apply_box_alignment_to_all: BoolProperty(name="Apply Box Alignment to All", default=False) - - if TYPE_CHECKING: - literal_index: int - apply_text_to_all: bool - apply_path_to_all: bool - apply_box_alignment_to_all: bool - - class BIMTextProperties(PropertyGroup): is_editing: BoolProperty(name="Is Editing", default=False) literals: CollectionProperty(name="Literals", type=LiteralProps) + newline_at: IntProperty(name="Newline At") + symbol: EnumProperty( # pyright: ignore[reportRedeclaration] + name="Symbol", + description="Symbol from symbols.svg to use for this text.", + items=[(s, s, "") for s in ["NO SYMBOL", "CUSTOM SYMBOL"] + tool.Drawing.DEFAULT_SYMBOLS], + default="NO SYMBOL", + ) + custom_symbol: StringProperty( # pyright: ignore[reportRedeclaration] + name="Custom Symbol", + description="Non-default symbol to use for this text.", + ) font_size: EnumProperty( items=[ ("1.8", "1.8 - Small", ""), @@ -899,52 +897,34 @@ class BIMTextProperties(PropertyGroup): default="2.5", name="Font Size", ) - newline_at: IntProperty(name="Newline At") - reverse_list: BoolProperty(name="Reverse List", description="Reverses the order of any list.", default=False) - list_separator: StringProperty( # pyright: ignore[reportRedeclaration] - name="List Separator", - description="Text used to separate lists. Uses a comma (, ) if empty.", + align_horizontal: EnumProperty( + items=[ + ("left", "Left", "", "ALIGN_LEFT", 0), + ("middle", "Middle", "", "ALIGN_CENTER", 1), + ("right", "Right", "", "ALIGN_RIGHT", 2), + ], + default="left", + name="Horizontal Alignment", ) - symbol: EnumProperty( # pyright: ignore[reportRedeclaration] - name="Symbol", - description="Symbol from symbols.svg to use for this text.", - items=[(s, s, "") for s in ["NO SYMBOL", "CUSTOM SYMBOL"] + tool.Drawing.DEFAULT_SYMBOLS], - default="NO SYMBOL", + align_vertical: EnumProperty( + items=[ + ("top", "Top", "", "ALIGN_TOP", 0), + ("middle", "Middle", "", "ALIGN_MIDDLE", 1), + ("bottom", "Bottom", "", "ALIGN_BOTTOM", 2), + ], + default="middle", + name="Vertical Alignment", ) - custom_symbol: StringProperty( # pyright: ignore[reportRedeclaration] - name="Custom Symbol", - description="Non-default symbol to use for this text.", - ) - - apply_font_size_to_all: BoolProperty( - name="Apply Font Size to All", description="Apply font size changes to all selected text objects", default=False - ) - apply_newline_to_all: BoolProperty( - name="Apply Newline to All", description="Apply newline changes to all selected text objects", default=False - ) - - literal_apply_settings: CollectionProperty(name="Literal Apply Settings", type=LiteralApplySettings) - - def ensure_literal_apply_settings(self, literal_count: int): - """Ensure we have apply settings for all literals""" - while len(self.literal_apply_settings) > literal_count: - self.literal_apply_settings.remove(len(self.literal_apply_settings) - 1) - - while len(self.literal_apply_settings) < literal_count: - setting = self.literal_apply_settings.add() - setting.literal_index = len(self.literal_apply_settings) - 1 if TYPE_CHECKING: is_editing: bool literals: bpy.types.bpy_prop_collection_idprop[LiteralProps] - font_size: str newline_at: int - reverse_list: bool - list_separator: str symbol: Union[str, Literal["NO SYMBOL", "CUSTOM SYMBOL"]] custom_symbol: str - apply_font_size_to_all: bool - apply_newline_to_all: bool + font_size: str + align_horizontal: str + align_vertical: str def get_symbol(self) -> Union[str, None]: if self.symbol == "NO SYMBOL": @@ -979,8 +959,6 @@ class BIMTextProperties(PropertyGroup): "FontSize": float(self.font_size), "Newline_At": int(self.newline_at), "Symbol": self.get_symbol(), - "Reverse_List": self.reverse_list, - "List_Separator": self.list_separator or ", ", } return text_data diff --git a/src/bonsai/bonsai/bim/module/drawing/svgwriter.py b/src/bonsai/bonsai/bim/module/drawing/svgwriter.py index dac8e54a61..ef64fdefc6 100644 --- a/src/bonsai/bonsai/bim/module/drawing/svgwriter.py +++ b/src/bonsai/bonsai/bim/module/drawing/svgwriter.py @@ -989,11 +989,6 @@ class SvgWriter: symbol = tool.Drawing.get_annotation_symbol(element) newline_at = tool.Drawing.get_newline_at(element) - # Get reverse_list and list_separator from EPset_Annotation - pset_data = ifcopenshell.util.element.get_pset(element, "EPset_Annotation") or {} - reverse_list = pset_data.get("Reverse_List", False) - list_separator = pset_data.get("List_Separator") or ", " - template_text_fields = [] if symbol: symbol_transform = self.get_symbol_transform(text_position_svg_str, angle, text_obj) @@ -1010,7 +1005,7 @@ class SvgWriter: # NOTE: zip makes sure that we iterate over the shortest list for field, text_literal in zip(template_text_fields, text_literals): field.text = tool.Drawing.replace_text_literal_variables( - text_literal.Literal, product or element, reverse_list, list_separator + text_literal.Literal, product or element ) field.attrib["class"] = classes_str @@ -1030,9 +1025,7 @@ class SvgWriter: line_number = 0 for text_literal in text_literals: - text = tool.Drawing.replace_text_literal_variables( - text_literal.Literal, product or element, reverse_list, list_separator - ) + text = tool.Drawing.replace_text_literal_variables(text_literal.Literal, product or element) text_segments = parse_markdown_it(text) diff --git a/src/bonsai/bonsai/bim/module/drawing/ui.py b/src/bonsai/bonsai/bim/module/drawing/ui.py index 45ae50beb4..556459b8b6 100644 --- a/src/bonsai/bonsai/bim/module/drawing/ui.py +++ b/src/bonsai/bonsai/bim/module/drawing/ui.py @@ -644,58 +644,56 @@ class BIM_PT_text(Panel): row.operator("bim.add_text_literal", icon="ADD", text="Add Literal") else: row.operator("bim.edit_text", icon="CHECKMARK") - row.operator("bim.add_text_literal", icon="ADD", text="") row.operator("bim.disable_editing_text", icon="CANCEL", text="") row = self.layout.row(align=True) row.prop(props, "font_size") - row.prop(props, "apply_font_size_to_all", text="", icon="COPYDOWN") + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "FONT_SIZE" + row = self.layout.row() + row.label(text="Alignment") + row.prop(props, "align_horizontal", text="", expand=True) + row.prop(props, "align_vertical", text="", expand=True) + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "ALIGNMENT" row = self.layout.row(align=True) row.prop(props, "newline_at") - row = self.layout.row(align=True) - row.prop(props, "reverse_list") - row = self.layout.row(align=True) - row.prop(props, "list_separator") + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "WRAP_LENGTH" row = self.layout.row(align=True) row.prop(props, "symbol") if props.symbol == "CUSTOM SYMBOL": row = self.layout.row(align=True) row.prop(props, "custom_symbol", text="") - row.prop(props, "apply_newline_to_all", text="", icon="COPYDOWN") select_op = row.operator("bim.select_similar_text_literal_value", text="", icon="RESTRICT_SELECT_OFF") select_op.literal_value = str(props.newline_at) select_op.attribute_type = "newline" + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "SYMBOL" + + row = self.layout.row(align=True) + row.label(text="Literals:") + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "LITERALS" + row.operator("bim.add_text_literal", icon="ADD", text="") for i, literal_props in enumerate(props.literals): box = self.layout.box() - - row = box.row(align=True) - row.label(text=f"Literal[{i}]:") - if i > 0: - row.operator("bim.order_text_literal_up", icon="TRIA_UP", text="").literal_prop_id = i - if i < len(props.literals) - 1: - row.operator("bim.order_text_literal_down", icon="TRIA_DOWN", text="").literal_prop_id = i - row.operator("bim.remove_text_literal", icon="X", text="").literal_prop_id = i - - if len(literal_props.attributes) > 0 and i < len(props.literal_apply_settings): + if len(literal_props.attributes): row = box.row(align=True) bonsai.bim.helper.draw_attribute(literal_props.attributes[0], row, enable_search=True) + if i > 0: + row.operator("bim.order_text_literal_up", icon="TRIA_UP", text="").literal_prop_id = i + if i < len(props.literals) - 1: + row.operator("bim.order_text_literal_down", icon="TRIA_DOWN", text="").literal_prop_id = i + row.operator("bim.remove_text_literal", icon="X", text="").literal_prop_id = i expand_icon = "DOWNARROW_HLT" if getattr(literal_props, "show_element_values", False) else "RIGHTARROW" op = row.operator("bim.toggle_element_values_panel", icon=expand_icon, text="") op.literal_prop_id = i - row.prop(props.literal_apply_settings[i], "apply_text_to_all", text="", icon="COPYDOWN") - element = tool.Ifc.get_entity(obj) assigned_element = tool.Drawing.get_assigned_product(element) or element resolved_value = tool.Drawing.replace_text_literal_variables( literal_props.attributes[0].string_value, assigned_element, - props.reverse_list, - props.list_separator, ) row = box.row(align=True) row.label(text="CurrentValue:") @@ -779,8 +777,6 @@ class BIM_PT_text(Panel): else: row.prop(attr, "string_value", text="Path") select_value = attr.string_value - if i < len(props.literal_apply_settings): - row.prop(props.literal_apply_settings[i], "apply_path_to_all", text="", icon="COPYDOWN") other_attributes = [a for a in literal_props.attributes[2:] if a.name != "BoxAlignment"] if other_attributes: @@ -800,10 +796,6 @@ class BIM_PT_text(Panel): col = row.column(align=True) alignment_label_row = col.row(align=True) alignment_label_row.label(text=" Text box alignment:") - if i < len(props.literal_apply_settings): - alignment_label_row.prop( - props.literal_apply_settings[i], "apply_box_alignment_to_all", text="", icon="COPYDOWN" - ) box_alignment_value = ( literal_props.attributes[ @@ -824,61 +816,52 @@ class BIM_PT_text(Panel): props = tool.Drawing.get_text_props(obj) if props.is_editing: - self.draw_text_editing_ui(context) - else: - text_data = DecoratorData.get_text_data(obj) + return self.draw_text_editing_ui(context) + text_data = DecoratorData.get_text_data(obj) - row = self.layout.row() - row.operator("bim.enable_editing_text", icon="GREASEPENCIL") + row = self.layout.row() + row.operator("bim.enable_editing_text", icon="GREASEPENCIL") - row = self.layout.row(align=True) - row.label(text="FontSize") - click_op = row.operator( - "bim.select_similar_text_literal_value", text=str(text_data["FontSize"]), emboss=False - ) - click_op.literal_value = str(text_data["FontSize"]) - click_op.attribute_type = "font_size" - click_op.display_text = str(text_data["FontSize"]) + row = self.layout.row(align=True) + row.label(text="FontSize") + click_op = row.operator("bim.select_similar_text_literal_value", text=str(text_data["FontSize"]), emboss=False) + click_op.literal_value = str(text_data["FontSize"]) + click_op.attribute_type = "font_size" + click_op.display_text = str(text_data["FontSize"]) - row = self.layout.row(align=True) - row.label(text="Newline_At") - click_op = row.operator( - "bim.select_similar_text_literal_value", text=str(text_data["Newline_At"]), emboss=False - ) - click_op.literal_value = str(text_data["Newline_At"]) - click_op.attribute_type = "newline" - click_op.display_text = str(text_data["Newline_At"]) - row = self.layout.row(align=True) - row.label(text="Reverse_List") - row.label(text=str(text_data["Reverse_List"])) - row = self.layout.row(align=True) - row.label(text="List_Separator") - row.label(text=str(text_data["List_Separator"])) + row = self.layout.row(align=True) + row.label(text="Newline_At") + click_op = row.operator( + "bim.select_similar_text_literal_value", text=str(text_data["Newline_At"]), emboss=False + ) + click_op.literal_value = str(text_data["Newline_At"]) + click_op.attribute_type = "newline" + click_op.display_text = str(text_data["Newline_At"]) - for i, literal_data in enumerate(text_data["Literals"]): - box = self.layout.box() - box.label(text=f"Literal[{i}]:") + for i, literal_data in enumerate(text_data["Literals"]): + box = self.layout.box() + box.label(text=f"Literal[{i}]:") - # Combine both approaches: clickable attributes from PR #7292 and display from PR #7106 - for attribute in literal_data: - row = box.row(align=True) - row.label(text=attribute) - click_op = row.operator( - "bim.select_similar_text_literal_value", - text=str(literal_data[attribute]), - emboss=False, - ) - click_op.literal_value = str(literal_data[attribute]) - click_op.literal_index = i - if attribute == "Literal": - click_op.attribute_type = "literal" - elif attribute == "Path": - click_op.attribute_type = "path" - elif attribute == "BoxAlignment": - click_op.attribute_type = "box_alignment" - else: - click_op.attribute_type = "text" - click_op.display_text = str(literal_data[attribute]) + # Combine both approaches: clickable attributes from PR #7292 and display from PR #7106 + for attribute in literal_data: + row = box.row(align=True) + row.label(text=attribute) + click_op = row.operator( + "bim.select_similar_text_literal_value", + text=str(literal_data[attribute]), + emboss=False, + ) + click_op.literal_value = str(literal_data[attribute]) + click_op.literal_index = i + if attribute == "Literal": + click_op.attribute_type = "literal" + elif attribute == "Path": + click_op.attribute_type = "path" + elif attribute == "BoxAlignment": + click_op.attribute_type = "box_alignment" + else: + click_op.attribute_type = "text" + click_op.display_text = str(literal_data[attribute]) class BIM_UL_drawinglist(bpy.types.UIList): diff --git a/src/bonsai/bonsai/core/drawing.py b/src/bonsai/bonsai/core/drawing.py index eb2c47f1dc..42b0f77fbb 100644 --- a/src/bonsai/bonsai/core/drawing.py +++ b/src/bonsai/bonsai/core/drawing.py @@ -38,13 +38,42 @@ def disable_editing_text(drawing: type[tool.Drawing], obj: bpy.types.Object) -> drawing.disable_editing_text(obj) -def edit_text(drawing: type[tool.Drawing], attribute_obj: bpy.types.Object, apply_objs: list[bpy.types.Object]) -> None: - literal_attributes = drawing.export_text_literal_attributes(attribute_obj) +def edit_text(drawing: type[tool.Drawing], obj: bpy.types.Object) -> None: + literal_attributes = drawing.export_text_literal_attributes(obj) + drawing.edit_text_font_size(obj, drawing.export_font_size(obj)) + drawing.edit_text_wrap_length(obj, drawing.export_wrap_length(obj)) + drawing.edit_text_symbol(obj, drawing.export_symbol(obj)) + drawing.edit_text_literals(obj, literal_attributes) + drawing.disable_editing_text(obj) + + +def copy_text_to_selection( + drawing: type[tool.Drawing], + attribute: Literal["FONT_SIZE", "ALIGNMENT", "WRAP_LENGTH", "SYMBOL", "LITERALS"], + attribute_obj: bpy.types.Object, + apply_objs: list[bpy.types.Object], +) -> None: + if attribute == "FONT_SIZE": + data = drawing.export_font_size(attribute_obj) + elif attribute == "ALIGNMENT": + data = drawing.export_alignment(attribute_obj) + elif attribute == "WRAP_LENGTH": + data = drawing.export_wrap_length(attribute_obj) + elif attribute == "SYMBOL": + data = drawing.export_symbol(attribute_obj) + elif attribute == "LITERALS": + data = drawing.export_text_literal_attributes(attribute_obj) for obj in apply_objs: - drawing.edit_text_literals(obj, literal_attributes) - # TODO: font size should be part of a separate set of formatting controls, not part of text editing - drawing.update_text_size_pset(obj) - drawing.update_text_annotation_properties(obj) + if attribute == "FONT_SIZE": + drawing.edit_text_font_size(obj, data) + elif attribute == "ALIGNMENT": + drawing.edit_text_alignment(obj, data) + elif attribute == "WRAP_LENGTH": + drawing.edit_text_wrap_length(obj, data) + elif attribute == "SYMBOL": + drawing.edit_text_symbol(obj, data) + elif attribute == "LITERALS": + drawing.edit_text_literals(obj, data) drawing.disable_editing_text(obj) diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index a34de4d4fe..a0b6290b12 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -334,6 +334,11 @@ class Drawing: def disable_editing_sheets(cls): pass def disable_editing_text(cls, obj): pass def does_file_exist(cls, uri): pass + def edit_text_alignment(cls, obj, alignment): pass + def edit_text_font_size(cls, obj, size): pass + def edit_text_literals(cls, obj, literals): pass + def edit_text_symbol(cls, obj, symbol): pass + def edit_text_wrap_length(cls, obj, wrap_length): pass def enable_editing(cls, obj): pass def enable_editing_assigned_product(cls, obj): pass def enable_editing_drawings(cls): pass @@ -403,8 +408,6 @@ class Drawing: def show_decorations(cls): pass def sync_object_placement(cls, obj): pass def update_embedded_svg_location(cls, uri, old_location, new_location): pass - def update_text_annotation_properties(cls, obj): pass - def update_text_size_pset(cls, obj): pass @interface diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index a0a45b403a..3b98b92611 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -608,6 +608,25 @@ class Drawing(bonsai.core.tool.Drawing): literals.append(literal_data) return literals + @classmethod + def export_font_size(cls, obj: bpy.types.Object) -> str: + return float(cls.get_text_props(obj).font_size) + + @classmethod + def export_alignment(cls, obj: bpy.types.Object) -> str: + props = cls.get_text_props(obj) + if (alignment := props.align_vertical + "-" + props.align_horizontal) == "middle-middle": + return "center" + return alignment + + @classmethod + def export_wrap_length(cls, obj: bpy.types.Object) -> str: + return cls.get_text_props(obj).newline_at + + @classmethod + def export_symbol(cls, obj: bpy.types.Object) -> str: + return cls.get_text_props(obj).get_symbol() + @classmethod def create_annotation_context( cls, target_view: str, object_type: Optional[str] = None @@ -1181,8 +1200,6 @@ class Drawing(bonsai.core.tool.Drawing): props.font_size = str(text_data["FontSize"]) props.newline_at = text_data["Newline_At"] props.set_symbol(text_data["Symbol"]) - props.reverse_list = text_data["Reverse_List"] - props.list_separator = text_data["List_Separator"] @classmethod def import_assigned_product(cls, obj: bpy.types.Object) -> None: @@ -1279,7 +1296,7 @@ class Drawing(bonsai.core.tool.Drawing): props.should_draw_decorations = True @classmethod - def update_text_size_pset(cls, obj: bpy.types.Object) -> None: + def edit_text_font_size(cls, obj: bpy.types.Object, font_size: float) -> None: """updates pset `EPset_Annotation.Classes` value based on current font size from `obj.BIMTextProperties.font_size` """ @@ -1289,8 +1306,9 @@ class Drawing(bonsai.core.tool.Drawing): element = tool.Ifc.get_entity(obj) assert element # updating text font size in EPset_Annotation.Classes - font_size = float(props.font_size) + print("we got", font_size, repr(font_size)) font_size_str = next((key for key in FONT_SIZES if FONT_SIZES[key] == font_size), None) + print("so", font_size_str) classes = ifcopenshell.util.element.get_pset(element, "EPset_Annotation", "Classes") assert isinstance(classes, Union[str, None]) classes_split = classes.split() if classes else [] @@ -1310,34 +1328,32 @@ class Drawing(bonsai.core.tool.Drawing): pset = tool.Pset.get_element_pset(element, "EPset_Annotation") if not pset: pset = ifcopenshell.api.pset.add_pset(ifc_file, product=element, name="EPset_Annotation") - ifcopenshell.api.pset.edit_pset( - ifc_file, - pset=pset, - properties={"Classes": classes}, - ) + ifcopenshell.api.pset.edit_pset(ifc_file, pset=pset, properties={"Classes": classes}) @classmethod - def update_text_annotation_properties(cls, obj: bpy.types.Object) -> None: - """Update all EPset_Annotation properties from the text props""" - props = cls.get_text_props(obj) + def edit_text_wrap_length(cls, obj: bpy.types.Object, wrap_length: int) -> None: element = tool.Ifc.get_entity(obj) - assert element - ifc_file = tool.Ifc.get() pset = tool.Pset.get_element_pset(element, "EPset_Annotation") if not pset: pset = ifcopenshell.api.pset.add_pset(ifc_file, product=element, name="EPset_Annotation") + ifcopenshell.api.pset.edit_pset(ifc_file, pset=pset, properties={"Newline_At": wrap_length}) - ifcopenshell.api.pset.edit_pset( - ifc_file, - pset=pset, - properties={ - "Newline_At": int(props.newline_at), - "Symbol": props.get_symbol(), - "Reverse_List": props.reverse_list, - "List_Separator": props.list_separator or "", - }, - ) + @classmethod + def edit_text_symbol(cls, obj: bpy.types.Object, symbol: str) -> None: + element = tool.Ifc.get_entity(obj) + ifc_file = tool.Ifc.get() + pset = tool.Pset.get_element_pset(element, "EPset_Annotation") + if not pset: + pset = ifcopenshell.api.pset.add_pset(ifc_file, product=element, name="EPset_Annotation") + ifcopenshell.api.pset.edit_pset(ifc_file, pset=pset, properties={"Symbol": symbol}) + + @classmethod + def edit_text_alignment(cls, obj: bpy.types.Object, alignment: str) -> None: + ifc_literals = cls.get_text_literal(obj, return_list=True) + for ifc_literal in ifc_literals or []: + if ifc_literal.is_a("IfcTextLiteralWithExtent"): + ifc_literal.BoxAlignment = alignment # TODO below this point is highly experimental prototype code with no tests @@ -2081,13 +2097,9 @@ class Drawing(bonsai.core.tool.Drawing): cls, text: str, product: Optional[ifcopenshell.entity_instance] = None, - reverse_list: bool = False, - list_separator: str = ", ", ) -> str: if not product: return text - if list_separator: - list_separator = list_separator.encode().decode("unicode_escape") for command in re.findall("``.*?``", text): original_command = command @@ -2102,10 +2114,7 @@ class Drawing(bonsai.core.tool.Drawing): for variable in re.findall("{{.*?}}", text): value = ifcopenshell.util.selector.get_element_value(product, variable[2:-2]) if isinstance(value, (list, tuple)): - if reverse_list: - value = list_separator.join(str(v) for v in reversed(value)) - else: - value = list_separator.join(str(v) for v in value) + value = ", ".join(str(v) for v in value) text = text.replace(variable, str(value)) return text From 02fab6eee219d4d04d2847379343af29cb4c3c3f Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Feb 2026 16:35:04 +1100 Subject: [PATCH 138/171] Fix #7634. Support formatting signed numbers. --- src/ifcopenshell-python/ifcopenshell/util/selector.py | 2 +- src/ifcopenshell-python/test/util/test_selector.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/selector.py b/src/ifcopenshell-python/ifcopenshell/util/selector.py index abcba23a0f..17051d6917 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/selector.py +++ b/src/ifcopenshell-python/ifcopenshell/util/selector.py @@ -144,7 +144,7 @@ format_grammar = lark.Lark( | mul_div "*" function -> multiply | mul_div "/" function -> divide - function: round | number | int | format_length | lower | upper | title | concat | substr | variable | ESCAPED_STRING | NUMBER | "(" expression ")" + function: round | number | int | format_length | lower | upper | title | concat | substr | variable | ESCAPED_STRING | SIGNED_NUMBER | "(" expression ")" variable: "{{" query_path "}}" query_path: /[^}]+/ diff --git a/src/ifcopenshell-python/test/util/test_selector.py b/src/ifcopenshell-python/test/util/test_selector.py index 0b90f3b278..959cacd02d 100644 --- a/src/ifcopenshell-python/test/util/test_selector.py +++ b/src/ifcopenshell-python/test/util/test_selector.py @@ -54,6 +54,7 @@ class TestFormat: def test_number_formatting(self): assert subject.format("round(123, 5)") == "125" assert subject.format('round("123", 5)') == "125" + assert subject.format('round(-123, 5)') == "-125" assert subject.format("int(123.123)") == "123" assert subject.format("int(123)") == "123" assert subject.format("number(123)") == "123" From 1d5108f934910917db887718fb45e4b33471b51d Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Fri, 6 Feb 2026 16:51:41 +0000 Subject: [PATCH 139/171] Fix linking for builds with -Wl,--as-needed --- src/ifcconvert/CMakeLists.txt | 1 + src/ifcwrap/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/src/ifcconvert/CMakeLists.txt b/src/ifcconvert/CMakeLists.txt index a5e16180cb..af46bc7dfe 100644 --- a/src/ifcconvert/CMakeLists.txt +++ b/src/ifcconvert/CMakeLists.txt @@ -15,6 +15,7 @@ target_link_libraries( IfcGeom IfcParse Serializers + ${kernel_libraries} ${OpenCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${HDF5_LIBRARIES} diff --git a/src/ifcwrap/CMakeLists.txt b/src/ifcwrap/CMakeLists.txt index 47420d9817..16e3a86565 100644 --- a/src/ifcwrap/CMakeLists.txt +++ b/src/ifcwrap/CMakeLists.txt @@ -140,6 +140,7 @@ else() target_link_libraries(ifcopenshell_wrapper PRIVATE ${IFCOPENSHELL_LIBRARIES} ${LIBSVGFILL}) endif() target_link_libraries(ifcopenshell_wrapper PRIVATE ${CGAL_LIBRARIES}) +target_link_libraries(ifcopenshell_wrapper PRIVATE IfcGeom ${kernel_libraries}) if((NOT WIN32) AND BUILD_SHARED_LIBS) SET_INSTALL_RPATHS(ifcopenshell_wrapper "${IFCDIRS};${OCC_LIBRARY_DIR}") endif() From dffa3515c0a87d717b66ee0588d3087206de52bf Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Feb 2026 19:17:12 +1100 Subject: [PATCH 140/171] Reimplement sort / reverse / join function to format language, simplify text annotation variables, add tests Previously, sort, reverse list, and join functionality was implemented as special cases in Bonsai itself. Given that it has usecases (especially in material lists, but any sort of list applies) I've moved this function into the IOS formatting language. The IOS formatting language previously wasn't capable of this, but the awesome addition by @falken10vdl made the formatting language accept queries inline, so that means it can handle lists. I also added tests for all the new functions and expression syntax (+-*/ operators). I simplified the code that gets the evaluated text literal - previously it seems to call format() multiple times. --- src/bonsai/bonsai/bim/module/drawing/data.py | 22 +----------- src/bonsai/bonsai/tool/drawing.py | 13 +++---- .../ifcopenshell-python/selector_syntax.rst | 4 +++ .../ifcopenshell/util/selector.py | 33 +++++++++++------- .../test/util/test_selector.py | 34 ++++++++++++++++++- 5 files changed, 62 insertions(+), 44 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/data.py b/src/bonsai/bonsai/bim/module/drawing/data.py index a4396d84c5..1668d386d3 100644 --- a/src/bonsai/bonsai/bim/module/drawing/data.py +++ b/src/bonsai/bonsai/bim/module/drawing/data.py @@ -365,15 +365,10 @@ class DecoratorData: for literal in literals: literal_value = literal.Literal - try: - eval_value = cls.evaluate_formatting_expressions(literal_value, product) - current_value = tool.Drawing.replace_text_literal_variables(eval_value, product) - except Exception: - current_value = literal_value literal_data = { "Literal": literal_value, "BoxAlignment": literal.BoxAlignment, - "CurrentValue": current_value, + "CurrentValue": tool.Drawing.replace_text_literal_variables(literal_value, product), } literals_data.append(literal_data) @@ -399,21 +394,6 @@ class DecoratorData: return element - @classmethod - def evaluate_formatting_expressions(cls, text: str, element=None) -> str: - """Evaluate formatting expressions wrapped in backticks using ifcopenshell.util.selector.format, always passing element context""" - import re - - def evaluate_expression(match): - try: - expression = match.group(1) - result = ifcopenshell.util.selector.format(expression, element) - return str(result) - except Exception as e: - return match.group(0) - - return re.sub(r"``([^`]+)``", evaluate_expression, text) - @classmethod def get_element_value_by_key(cls, element: ifcopenshell.entity_instance, key: str): """Get element value by its key using IfcOpenShell selector syntax""" diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index 3b98b92611..a7238c75dc 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -1306,9 +1306,7 @@ class Drawing(bonsai.core.tool.Drawing): element = tool.Ifc.get_entity(obj) assert element # updating text font size in EPset_Annotation.Classes - print("we got", font_size, repr(font_size)) font_size_str = next((key for key in FONT_SIZES if FONT_SIZES[key] == font_size), None) - print("so", font_size_str) classes = ifcopenshell.util.element.get_pset(element, "EPset_Annotation", "Classes") assert isinstance(classes, Union[str, None]) classes_split = classes.split() if classes else [] @@ -2101,16 +2099,13 @@ class Drawing(bonsai.core.tool.Drawing): if not product: return text - for command in re.findall("``.*?``", text): + for command in re.findall("``.+?``", text): original_command = command command_content = command[2:-2] - if command_content is None or str(command_content).strip().lower() == "none": + try: + text = text.replace(original_command, ifcopenshell.util.selector.format(command_content, product)) + except Exception: text = text.replace(original_command, "") - else: - try: - text = text.replace(original_command, ifcopenshell.util.selector.format(command_content, product)) - except Exception: - text = text.replace(original_command, "") for variable in re.findall("{{.*?}}", text): value = ifcopenshell.util.selector.get_element_value(product, variable[2:-2]) if isinstance(value, (list, tuple)): diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst index 67f7b792b3..2d0cc9e071 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst @@ -252,6 +252,10 @@ nest formulas, for example ``concat(title("foo"), lower("Bar"))`` will produce "``number({{value}}[, {{decimal_separator}}[, {{thousands_separator}}]])``", "``number(1234.56, "","", ""."")``", "``1.234,56``", "Formats {{value}} with an optional custom {{decimal_separator}} and {{thousands_separator}}. The default separators are ``.`` and ``,``." "``metric_length({{value}}, {{precision}}, {{decimals}})``", "``metric_length(3.123, 0.1, 2)``", "``3.10``", "Rounds ``{{value}}`` to the nearest ``{{precision}}`` then displays using a certain amount of decimal places." "``imperial_length({{value}}, {{precision}}, {{input_unit}}, {{output_unit}}, {{suppress_zero_inches}})``", "``imperial_length(3.0, 4, ""foot"", ""foot"", true)`` OR ``imperial_length(3.0, 4, ""foot"", ""foot"", false)``", "``3'`` OR ``3' - 0""``", "The ``{{value}}`` may be specified either as ``foot`` or ``inch`` depending on ``{{input_unit}}``. The ``{{value}}`` is then rounded to the nearest ``1/{{precision}}`` inch, then formatted using fractional feet and inches if ``{{output_unit}}`` is set to ``foot``, or just inches if ``{{output_unit}}`` is set to ``inch``. When ``{{suppress_zero_inches}}`` is ``true`` (default), measurements with zero inches will omit the inch portion (e.g., ``3'`` instead of ``3' - 0""``)." + "``sort({{values}})``", "``sort({{mats.Name}})``", "``Name1, Name2``", "Sorts a list of items." + "``reverse({{values}})``", "``reverse({{mats.Name}})``", "``Name2, Name1``", "Reverses a list of items." + "``join({{separator}}, {{values}})``", "``join("-", {{mats.Name}})``", "``Name1-Name2``", "Joins a list of items with a custom separator. By default, all lists a rendered as comma separated." + "``{{value1}}[+-*/]{{value2}}``", "``{{z}}+3``", "``5``", "Does arithmetic. Typical operators such as +, -, \*, and / are allowed and can be mixed with other variables and formatting functions." When using queries in an IfcAnnotation tag surround with backticks. Examples: diff --git a/src/ifcopenshell-python/ifcopenshell/util/selector.py b/src/ifcopenshell-python/ifcopenshell/util/selector.py index 17051d6917..d3bef9758f 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/selector.py +++ b/src/ifcopenshell-python/ifcopenshell/util/selector.py @@ -144,7 +144,7 @@ format_grammar = lark.Lark( | mul_div "*" function -> multiply | mul_div "/" function -> divide - function: round | number | int | format_length | lower | upper | title | concat | substr | variable | ESCAPED_STRING | SIGNED_NUMBER | "(" expression ")" + function: round | number | int | format_length | lower | upper | title | concat | substr | sort | reverse | join | variable | ESCAPED_STRING | SIGNED_NUMBER | "(" expression ")" variable: "{{" query_path "}}" query_path: /[^}]+/ @@ -160,6 +160,9 @@ format_grammar = lark.Lark( title: "title(" expression ")" concat: "concat(" expression ("," expression)* ")" substr: "substr(" expression "," SIGNED_INT ["," SIGNED_INT] ")" + sort: "sort(" expression ")" + reverse: "reverse(" expression ")" + join: "join(" ESCAPED_STRING "," expression ")" boolean: TRUE | FALSE TRUE: "true" | "True" | "TRUE" @@ -201,6 +204,8 @@ class FormatTransformer(lark.Transformer): self.element = element def start(self, args): + if isinstance(args[0], (list, tuple)): + return ", ".join(args[0]) return args[0] def expression(self, args): @@ -208,18 +213,11 @@ class FormatTransformer(lark.Transformer): def variable(self, args): """Handle variable substitution like {{z}} or {{Pset_Wall.FireRating}}""" - if self.element is None: - return "0" # Default value if no element context - - query_path = args[0] - try: - value = get_element_value(self.element, query_path) - if value is None: - return "0" - # Convert to string for further processing - return str(value) - except: - return "0" # Return default on error + if self.element: + try: + return get_element_value(self.element, args[0]) + except: + pass def query_path(self, args): """Extract the query path from variable""" @@ -301,6 +299,15 @@ class FormatTransformer(lark.Transformer): elif len(args) == 2: return str(args[0])[int(args[1]) :] + def sort(self, args): + return sorted(args[0]) + + def reverse(self, args): + return list(reversed(args[0])) + + def join(self, args): + return args[0].join(args[1]) + def boolean(self, args): if not args: return True diff --git a/src/ifcopenshell-python/test/util/test_selector.py b/src/ifcopenshell-python/test/util/test_selector.py index 959cacd02d..3c94876a66 100644 --- a/src/ifcopenshell-python/test/util/test_selector.py +++ b/src/ifcopenshell-python/test/util/test_selector.py @@ -35,7 +35,7 @@ import ifcopenshell.util.selector as subject import test.bootstrap -class TestFormat: +class TestFormat(test.bootstrap.IFC4): def test_no_formatting(self): assert subject.format("123") == "123" assert subject.format('"123"') == "123" @@ -78,6 +78,38 @@ class TestFormat: assert subject.format('imperial_length(3.0, 4, "foot", "foot", false)') == "3' - 0\"" assert subject.format('imperial_length(3.0, 4, "foot", "foot", False)') == "3' - 0\"" + def test_variable_formatting(self): + assert subject.format('{{undefined}}') is None + assert subject.format('upper({{undefined}})') == "NONE" + assert subject.format('int({{undefined}})') == "0" + element = ifcopenshell.api.root.create_entity(self.file, ifc_class="IfcWall") + assert subject.format('{{undefined}}', element) is None + assert subject.format('{{class}}', element) == "IfcWall" + assert subject.format('{{ class }}', element) == "IfcWall" + assert subject.format('upper({{ class }})', element) == "IFCWALL" + + def test_list_formatting(self): + element = ifcopenshell.api.root.create_entity(self.file, ifc_class="IfcWall") + material = ifcopenshell.api.material.add_material(self.file, name="CON01") + material2 = ifcopenshell.api.material.add_material(self.file, name="CON03") + material3 = ifcopenshell.api.material.add_material(self.file, name="CON02") + material_set = ifcopenshell.api.material.add_material_set(self.file, set_type="IfcMaterialLayerSet") + layer = ifcopenshell.api.material.add_layer(self.file, layer_set=material_set, material=material) + layer = ifcopenshell.api.material.add_layer(self.file, layer_set=material_set, material=material2) + layer = ifcopenshell.api.material.add_layer(self.file, layer_set=material_set, material=material3) + ifcopenshell.api.material.assign_material(self.file, products=[element], material=material_set) + assert subject.format('{{materials.Name}}', element) == "CON01, CON03, CON02" + assert subject.format('sort({{materials.Name}})', element) == "CON01, CON02, CON03" + assert subject.format('reverse({{materials.Name}})', element) == "CON02, CON03, CON01" + assert subject.format('join("-", {{materials.Name}})', element) == "CON01-CON03-CON02" + + def test_expressions(self): + assert subject.format('2+3') == "5" + assert subject.format('-2+3') == "1" + assert subject.format('2-3') == "-1" + assert subject.format('3*2') == "6" + assert subject.format('3/2') == "1.5" + class TestGetElementValue(test.bootstrap.IFC4): def test_selecting_an_elements_class_or_id_using_a_query(self): From 3fe9980aa41cfa90dc9e7d27b4b9bab4e30b4880 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 22:45:56 +0000 Subject: [PATCH 141/171] Bump ruff from 0.14.14 to 0.15.0 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.14 to 0.15.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.14.14...0.15.0) --- updated-dependencies: - dependency-name: ruff dependency-version: 0.15.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4e9d9687c5..74c3b0ee18 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "IfcOpenShell" version = "0.0.0" dependencies = [ "black==26.1.0", - "ruff==0.14.14", + "ruff==0.15.0", "poethepoet", "gersemi==0.25.4", ] From 17b88fff229ebf14d93af3957488753fce3c50bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 22:45:40 +0000 Subject: [PATCH 142/171] Bump aws-actions/configure-aws-credentials from 5 to 6 Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 5 to 6. - [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases) - [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v5...v6) --- updated-dependencies: - dependency-name: aws-actions/configure-aws-credentials dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build_osx.yml | 2 +- .github/workflows/build_pyodide.yml | 2 +- .github/workflows/build_rocky.yml | 2 +- .github/workflows/build_rocky_arm.yml | 2 +- .github/workflows/build_win.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_osx.yml b/.github/workflows/build_osx.yml index f53d91b98d..056cf13763 100644 --- a/.github/workflows/build_osx.yml +++ b/.github/workflows/build_osx.yml @@ -139,7 +139,7 @@ jobs: cd .. - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_pyodide.yml b/.github/workflows/build_pyodide.yml index b5692b18f4..744bd9e772 100644 --- a/.github/workflows/build_pyodide.yml +++ b/.github/workflows/build_pyodide.yml @@ -77,7 +77,7 @@ jobs: git push || echo "Push failed" - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_rocky.yml b/.github/workflows/build_rocky.yml index 6a21a9dfc3..662aa04f26 100644 --- a/.github/workflows/build_rocky.yml +++ b/.github/workflows/build_rocky.yml @@ -118,7 +118,7 @@ jobs: cd .. - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_rocky_arm.yml b/.github/workflows/build_rocky_arm.yml index c595c63676..445f49658a 100644 --- a/.github/workflows/build_rocky_arm.yml +++ b/.github/workflows/build_rocky_arm.yml @@ -118,7 +118,7 @@ jobs: cd .. - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_win.yml b/.github/workflows/build_win.yml index 6ef112da61..ab9d7b6f80 100644 --- a/.github/workflows/build_win.yml +++ b/.github/workflows/build_win.yml @@ -73,7 +73,7 @@ jobs: git push || echo "Push failed" - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} From a4d5d4e19ad576ce237362802479401078ae7763 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Mon, 9 Feb 2026 21:21:10 +0100 Subject: [PATCH 143/171] Ignore site placement also for site geometry #7654 --- src/ifcgeom/mapping/IfcObjectPlacement.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ifcgeom/mapping/IfcObjectPlacement.cpp b/src/ifcgeom/mapping/IfcObjectPlacement.cpp index be0c222e08..098236d7c1 100644 --- a/src/ifcgeom/mapping/IfcObjectPlacement.cpp +++ b/src/ifcgeom/mapping/IfcObjectPlacement.cpp @@ -22,6 +22,18 @@ using namespace ifcopenshell::geometry; taxonomy::ptr mapping::map_impl(const IfcSchema::IfcObjectPlacement* inst) { + if (placement_rel_to_type_ || placement_rel_to_instance_) { + // @nb this is not a full solution because we only look for the direct PlacesObject relationships of the current placement, + // a more complete solution should track whether this element sits above the element of which the placement is being ignored. + auto self_places = inst->PlacesObject(); + for (auto iter = self_places->begin(); iter != self_places->end(); ++iter) { + if ((placement_rel_to_type_ && (*iter)->declaration().is(*placement_rel_to_type_)) || + (placement_rel_to_instance_ && (*iter)->as() == placement_rel_to_instance_)){ + return taxonomy::make(); + } + } + } + const IfcSchema::IfcObjectPlacement* relative_to = nullptr; const IfcUtil::IfcBaseInterface* transform; From a46cdbb907974c03be91bad002ce4f88aae682dd Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Mon, 9 Feb 2026 21:37:21 +0100 Subject: [PATCH 144/171] Ignore site placement also for site geometry - add queue #7654 --- src/ifcgeom/mapping/IfcObjectPlacement.cpp | 36 +++++++++++++++++----- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/src/ifcgeom/mapping/IfcObjectPlacement.cpp b/src/ifcgeom/mapping/IfcObjectPlacement.cpp index 098236d7c1..a0a37dd30f 100644 --- a/src/ifcgeom/mapping/IfcObjectPlacement.cpp +++ b/src/ifcgeom/mapping/IfcObjectPlacement.cpp @@ -21,15 +21,37 @@ #define mapping POSTFIX_SCHEMA(mapping) using namespace ifcopenshell::geometry; +#include + taxonomy::ptr mapping::map_impl(const IfcSchema::IfcObjectPlacement* inst) { if (placement_rel_to_type_ || placement_rel_to_instance_) { - // @nb this is not a full solution because we only look for the direct PlacesObject relationships of the current placement, - // a more complete solution should track whether this element sits above the element of which the placement is being ignored. - auto self_places = inst->PlacesObject(); - for (auto iter = self_places->begin(); iter != self_places->end(); ++iter) { - if ((placement_rel_to_type_ && (*iter)->declaration().is(*placement_rel_to_type_)) || - (placement_rel_to_instance_ && (*iter)->as() == placement_rel_to_instance_)){ - return taxonomy::make(); + using QueueItem = std::pair; + std::deque q = {{inst, 0}}; + while (!q.empty()) { + auto [placement_entity, depth] = q.front(); + q.pop_front(); + + auto placement = placement_entity->as(); + if (!placement) { + continue; + } + + auto self_places = placement->PlacesObject(); + inst->ReferencedByPlacements(); + for (auto iter = self_places->begin(); iter != self_places->end(); ++iter) { + if ((placement_rel_to_type_ && (*iter)->declaration().is(*placement_rel_to_type_)) || + (placement_rel_to_instance_ && (*iter)->as() == placement_rel_to_instance_)) { + return taxonomy::make(); + } + } + + // Look for two levels deep, we want to know if we're at or *above* the + // element we're ignoring, but we don't want to traverse the entire model. + if (depth < 2) { + auto refs = placement->ReferencedByPlacements(); + for (auto& ref : *refs) { + q.emplace_back(ref, depth + 1); + } } } } From f5686fff2619578b5a3fb486cdb599f6e74e6566 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 10 Feb 2026 09:25:02 +0100 Subject: [PATCH 145/171] Simplify destructor by removing null check #7650 --- src/ifcgeom/Converter.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/ifcgeom/Converter.cpp b/src/ifcgeom/Converter.cpp index 6b70ac7f51..a50a43cc66 100644 --- a/src/ifcgeom/Converter.cpp +++ b/src/ifcgeom/Converter.cpp @@ -12,11 +12,8 @@ ifcopenshell::geometry::Converter::Converter(std::unique_ptrsettings(); } -ifcopenshell::geometry::Converter::~Converter() -{ - if (mapping_ != nullptr) { - delete mapping_; - } +ifcopenshell::geometry::Converter::~Converter() { + delete mapping_; } namespace { From c6072e416cf3cc05ade4fa669e2afece292ee607 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 10 Feb 2026 11:04:43 +0100 Subject: [PATCH 146/171] N-Section Lofting for Non-Polygonal (Curved) Shapes #7658 --- src/ifcgeom/kernels/opencascade/loft.cpp | 100 +++++++++++++++-------- 1 file changed, 65 insertions(+), 35 deletions(-) diff --git a/src/ifcgeom/kernels/opencascade/loft.cpp b/src/ifcgeom/kernels/opencascade/loft.cpp index 60997d24ad..74c9c187df 100644 --- a/src/ifcgeom/kernels/opencascade/loft.cpp +++ b/src/ifcgeom/kernels/opencascade/loft.cpp @@ -82,49 +82,79 @@ bool OpenCascadeKernel::convert(const taxonomy::loft::ptr loft, TopoDS_Shape& re } if (non_polygonal) { - if (loft->children.size() == 2) { - BRep_Builder BB; - TopoDS_Shell comp; - BB.MakeShell(comp); + if (loft->children.size() < 2) { + Logger::Error("Not enough sections to loft"); + return false; + } + std::vector> sections; + sections.reserve(loft->children.size()); - TopoDS_Shape f0, f1; - if (!convert(std::static_pointer_cast(loft->children.front()), f0) || - !convert(std::static_pointer_cast(loft->children.back()), f1)) - { + TopoDS_Shape f0, f1; + + // Convert all children to vectors of wires + for (const auto& child : loft->children) { + TopoDS_Shape shape; + if (!convert(std::static_pointer_cast(child), shape)) { + return false; + } + if (shape.ShapeType() != TopAbs_FACE) { + return false; + } + // At least make sure to have outer wire consistent, but in reality + // this is probably not a concern given how to build up these faces + auto f = TopoDS::Face(shape); + + if (child == loft->children.front()) { + f0 = f; + } else if (child == loft->children.back()) { + f1 = f; + } + + auto outer = BRepTools::OuterWire(f); + sections.emplace_back(); + sections.back().push_back(outer); + for (TopoDS_Iterator it(f); it.More(); it.Next()) { + if (outer != it.Value()) { + sections.back().push_back(TopoDS::Wire(it.Value())); + } + } + } + + auto first_wire_count = sections.front().size(); + for (auto& section : sections) { + if (section.size() != first_wire_count) { + Logger::Error("Inconsistent number of wires in sections"); return false; } - if (f0.ShapeType() != TopAbs_FACE || f1.ShapeType() != TopAbs_FACE) { + } + + BRep_Builder BB; + TopoDS_Shell comp; + BB.MakeShell(comp); + + for (size_t i = 0; i < first_wire_count; ++i) { + // Rule=True uses linear interpolation. + // This is critical for preventing twists in roads/railings. + BRepOffsetAPI_ThruSections builder(false, true); + for (auto& ws : sections) { + builder.AddWire(ws[i]); + } + builder.Build(); + if (!builder.IsDone()) { return false; } - - TopExp_Explorer exp1(f0, TopAbs_WIRE); - TopExp_Explorer exp2(f1, TopAbs_WIRE); - for (; exp1.More() && exp2.More(); exp1.Next(), exp2.Next()) { - const auto& w1 = TopoDS::Wire(exp1.Current()); - const auto& w2 = TopoDS::Wire(exp2.Current()); - BRepOffsetAPI_ThruSections builder; - builder.AddWire(w1); - builder.AddWire(w2); - builder.Build(); - if (!builder.IsDone()) { - return false; - } - for (TopExp_Explorer exp(builder.Shape(), TopAbs_FACE); exp.More(); exp.Next()) { - BB.Add(comp, exp.Current()); - } + for (TopExp_Explorer exp(builder.Shape(), TopAbs_FACE); exp.More(); exp.Next()) { + BB.Add(comp, exp.Current()); } - - BB.Add(comp, f0.Reversed()); - BB.Add(comp, f1); - - result = BRepBuilderAPI_MakeSolid(comp).Solid(); - - return true; - } else { - Logger::Error("Lofting more than two sections is not supported"); - return false; } + + BB.Add(comp, f0.Reversed()); + BB.Add(comp, f1); + + result = BRepBuilderAPI_MakeSolid(comp).Solid(); + + return true; } TopTools_ListOfShape faces; From e6780973da0d08771734aab5019998148706ef21 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 10 Feb 2026 14:01:10 +0100 Subject: [PATCH 147/171] arrange_poly: Refactor into logical blocks; add timing --- src/svgfill/src/arrange_polygons.cpp | 1778 ++++++++++++-------------- src/svgfill/src/graph_2d.h | 12 + 2 files changed, 825 insertions(+), 965 deletions(-) diff --git a/src/svgfill/src/arrange_polygons.cpp b/src/svgfill/src/arrange_polygons.cpp index 7bddc2e41a..0271d76146 100644 --- a/src/svgfill/src/arrange_polygons.cpp +++ b/src/svgfill/src/arrange_polygons.cpp @@ -164,31 +164,6 @@ boost::optional subtract_retain_largest(const T& lhs, const T& rhs) { return boost::none; } -// Function to write polygons as line segments in OBJ format -void write_polygon_to_obj(std::ofstream& ofs, size_t& vertex_index, bool as_line, const Polygon_2& polygon, const std::string& name) { - ofs << "o " << name << "\n"; // Object name - - // Write vertices - for (auto vit = polygon.vertices_begin(); vit != polygon.vertices_end(); ++vit) { - ofs << "v " << CGAL::to_double(vit->x()) << " " << CGAL::to_double(vit->y()) << " 0\n"; - } - - if (as_line) { - // Write line segments (edges) - for (size_t j = 0; j < polygon.size(); ++j) { - ofs << "l " << vertex_index + j << " " << vertex_index + (j + 1) % polygon.size() << "\n"; - } - } else { - ofs << "f"; - for (size_t j = 0; j < polygon.size(); ++j) { - ofs << " " << vertex_index + j; - } - ofs << "\n"; - } - - vertex_index += polygon.size(); -} - Polygon_2 circ_to_poly(typename Arrangement_2::Ccb_halfedge_const_circulator circ) { Polygon_2 poly; @@ -208,27 +183,6 @@ Polygon_with_holes_2 circ_to_poly(typename Arrangement_2::Ccb_halfedge_const_cir return poly; } -void write_polygon_to_svg(std::ostream& ofs, const Polygon_2& polygon) { - ofs << "x()) << "," << CGAL::to_double(vit->y()) << " "; - } - ofs << "\" style=\"fill:none;stroke-width:1\" />\n"; -} - -// Function to write a Polygon_with_holes_2 to an SVG file -void write_polygon_with_holes_to_svg(std::ostream& ofs, const Polygon_with_holes_2& polygon_with_holes) { - // Write the outer boundary (main polygon) - if (!polygon_with_holes.is_unbounded()) { - write_polygon_to_svg(ofs, polygon_with_holes.outer_boundary()); - } - - // Write the holes (if any) with a different color (e.g., red) - for (auto hit = polygon_with_holes.holes_begin(); hit != polygon_with_holes.holes_end(); ++hit) { - write_polygon_to_svg(ofs, *hit); - } -} - Polygon_2 fuse_with_offset(const std::vector& polygons, double polygon_offset_distance) { // Find the outer perimeter using offset - union - negative offset std::vector offset_polygons; @@ -285,78 +239,77 @@ Polygon_2 fuse_with_offset(const std::vector& polygons, double polygo return inner_offset.front(); } -void arrange_cgal_polygons(const std::vector& input_polygons_, std::vector& output_polygons, double polygon_offset_distance = -1.) { - static const double OVERLAP_RESOLUTION_DISTANCE = 1.e-2; - // even larger amount of inset so that outer perimeter is safely within all input polygons even when overlap resolution is applied - // no, `1.e-2 + 1.e-5` creates issues with the outer perimeter, are there other tolerances in play? - static const double OUTER_PERIMITER_ADDITIONAL_INSET_AMOUNT = 1.e-5; +double estimate_polygon_offset_distance(const std::vector& polygons) { + double total_edge_length = 0.; + size_t num_edges = 0; + for (auto& p : polygons) { + for (auto it = p.edges_begin(); it != p.edges_end(); ++it) { + total_edge_length += std::sqrt(CGAL::to_double(CGAL::squared_distance(it->start(), it->end()))); + num_edges += 1; + } + } + return total_edge_length / num_edges / 2; +} - if (polygon_offset_distance < 0.) { - double total_edge_length = 0.; - size_t num_edges = 0; - for (auto& p : input_polygons_) { - for (auto it = p.edges_begin(); it != p.edges_end(); ++it) { - total_edge_length += std::sqrt(CGAL::to_double(CGAL::squared_distance(it->start(), it->end()))); - num_edges += 1; +void clean_polygon(Polygon_2& poly) { + // Ensure counterclockwise orientation and remove duplicate last point if present also remove close points + if (!poly.is_counterclockwise_oriented()) { + poly.reverse_orientation(); + } + std::vector> ps(poly.begin(), poly.end()); + if (ps.front() == ps.back()) { + ps.pop_back(); + } + poly = Polygon_2(ps.begin(), ps.end()); + remove_close_points(poly); +} + +void smooth_polygon(double factor, Polygon_2& poly) { + auto ps = create_and_convert_offset_polygon(-factor, poly); + if (ps.size() == 1) { + auto r2 = ps.front(); + ps = create_and_convert_offset_polygon(+factor, r2); + if (ps.size() == 1) { + poly = ps.front(); + } + } +} + +template +void split_self_intersecting_polygon(const CGAL::Polygon_2& poly, OutIt output_it) { + if (poly.is_simple()) { + *output_it++ = poly; + return; + } + Arrangement_2 arr; + for (auto it = poly.edges_begin(); it != poly.edges_end(); ++it) { + CGAL::insert(arr, Segment_2(it->start(), it->end())); + } + for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { + if (it->is_unbounded()) { + for (auto jt = it->inner_ccbs_begin(); jt != it->inner_ccbs_end(); ++jt) { + auto inner = circ_to_poly(*jt); + // reverse because it's an inner bound to the infinite outer facet + inner.reverse_orientation(); + *output_it++ = inner; } } - polygon_offset_distance = total_edge_length / num_edges / 2; } +} - auto input_polygons__ = input_polygons_; - decltype(input_polygons__) input_polygons; - - for (auto& i : input_polygons__) { - std::vector> ps(i.begin(), i.end()); - if (ps.front() == ps.back()) { - ps.pop_back(); - } - input_polygons.emplace_back(ps.begin(), ps.end()); - } - - for (auto& polygon : input_polygons) { - if (!polygon.is_counterclockwise_oriented()) { - polygon.reverse_orientation(); - } - } - - for (auto& polygon : input_polygons) { - remove_close_points(polygon); - } - -#ifdef SVGFILL_DEBUG - std::ofstream obj("obj.obj"); - size_t vi = 1; - - std::ofstream svg("svg.svg"); - svg << "\n"; - - for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { - write_polygon_to_obj(obj, vi, true, *it, "input_poly_" + std::to_string(std::distance(input_polygons.begin(), it))); - write_polygon_to_svg(svg, *it); - } - - obj << std::flush; -#endif - +std::set> +find_overlaps(const std::vector& polygons) { typedef CGAL::Box_intersection_d::Box_with_handle_d Box; + std::vector boxes; + std::vector>> input_triangulated; - std::vector boxes; - for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + for (auto it = polygons.begin(); it != polygons.end(); ++it) { constexpr double offset = 1.e-3; auto b = it->bbox(); boxes.emplace_back( CGAL::Bbox_2(b.xmin() - offset, b.ymin() - offset, b.xmax() + offset, b.ymax() + offset), - std::distance(input_polygons.begin(), it) - ); - - if (!it->is_simple()) { -#ifdef SVGFILL_DEBUG - write_polygon_to_obj(obj, vi, true, *it, "self-intersecting"); -#endif - throw std::runtime_error("Self-intersecting input"); - } + std::distance(polygons.begin(), it)); CGAL::Polygon_triangulation_decomposition_2 decompositor; std::vector temp; @@ -378,10 +331,8 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v bool registered_overlap = false; for (auto& t2 : input_triangulated[b.handle()]) { if (CGAL::squared_distance(t1, t2) < (1.e-3 * 1.e-3)) { - overlaps.insert({ - (a.handle() < b.handle()) ? a.handle() : b.handle(), - (a.handle() < b.handle()) ? b.handle() : a.handle() - }); + overlaps.insert({(a.handle() < b.handle()) ? a.handle() : b.handle(), + (a.handle() < b.handle()) ? b.handle() : a.handle()}); registered_overlap = true; break; } @@ -393,297 +344,319 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v } }); - if (true) { - // solve overlaps by means of subtraction - // loop over overlaps and subtract the smaller polygon from the larger one + return overlaps; +} - std::set eliminated_polies; - std::map overlap_counts; - for (auto& p : overlaps) { - overlap_counts[p.first]++; - overlap_counts[p.second]++; +class DebugWriter { + public: + DebugWriter(bool enabled, const std::string& filename_prefix) + : enabled_(enabled) { + if (enabled_) { + obj.open(filename_prefix + ".obj"); + vi = 1; + svg.open(filename_prefix + ".svg"); + svg << "\n"; } - - for (const auto& edge : overlaps) { - // Skip eliminated - if (eliminated_polies.find(edge.first) != eliminated_polies.end() || - eliminated_polies.find(edge.second) != eliminated_polies.end()) { - continue; - } - - // Many overlaps indicate an aggregated polygon, skip them - /* - if (overlap_counts[edge.first] > 10 || overlap_counts[edge.second] > 10) { - if (overlap_counts[edge.first] > 10) { - eliminated_polies.insert(edge.first); - } - if (overlap_counts[edge.second] > 10) { - eliminated_polies.insert(edge.second); - } - continue; - } - */ - - // these are pointers now, because otherwise swap would not work? - auto* poly1 = &input_polygons[edge.first]; - auto* poly2 = &input_polygons[edge.second]; - - // Populate eliminated_polies with small polygons - // This can happen over time when modifications are made to the polygons to solve overlaps - bool skip = false; - if (poly1->area() < 1.e-2) { - eliminated_polies.insert(edge.first); - skip = true; - } - if (poly2->area() < 1.e-2) { - eliminated_polies.insert(edge.second); - skip = true; - } - // Small slivers are also just eliminated - if (!maybe_take_first_if_single_item(create_and_convert_offset_polygon(-1.e-1, *poly1))) { - eliminated_polies.insert(edge.first); - skip = true; - } - if (!maybe_take_first_if_single_item(create_and_convert_offset_polygon(-1.e-1, *poly2))) { - eliminated_polies.insert(edge.second); - skip = true; - } - if (skip) { - continue; - } - - // Skip polygons that have a very high intersection over union - // ratio, which indicates that they are very likely duplicates - if (CGAL::do_intersect(*poly1, *poly2)) { - std::vector result; - CGAL::intersection(*poly1, *poly2, std::back_inserter(result)); - typename K::FT intersection_area = 0; - for (auto& r : result) { - auto poly_area = r.outer_boundary().area(); - for (auto& h : r.holes()) { - poly_area -= h.area(); - } - intersection_area += poly_area; - } - CGAL::Polygon_with_holes_2 poly12; - CGAL::join(*poly1, *poly2, poly12); - typename K::FT union_area = poly12.outer_boundary().area(); - for (auto& h : poly12.holes()) { - union_area -= h.area(); - } - if (union_area > 0 && intersection_area / union_area > 0.99) { - // std::cerr << intersection_area / union_area << std::endl; - eliminated_polies.insert(edge.first); - continue; - } - } - - if (!(poly1->is_simple() && poly2->is_simple())) { - continue; - } - - { - std::vector result; - // std::cerr << poly1.area() << " " << poly2.area() << std::endl; - // std::cerr.flush(); - - boost::optional mp1, mp2, mp3, mp4; - bool swap = false; - - swap = poly1->area() <= poly2->area(); - if (swap) { - std::swap(poly1, poly2); - } - - bool success = false; - if ((mp1 = maybe_take_first_if_single_item(create_and_convert_offset_polygon(OVERLAP_RESOLUTION_DISTANCE, *poly2)))) { - if ((mp2 = subtract_retain_largest(*poly1, *mp1))) { - if ((mp3 = maybe_take_first_if_single_item(create_and_convert_offset_polygon(OVERLAP_RESOLUTION_DISTANCE * 2, *mp2)))) { - if ((mp4 = subtract_retain_largest(*poly2, *mp3))) { - *poly1 = *mp2; - *poly2 = *mp4; - success = true; - } - } - } - } - - /* - if (swap) { - // swap back to retain original ordering - // what's the point in swapping back here? - std::swap(poly1, poly2); - } - */ - - if (!success) { - eliminated_polies.insert(swap ? edge.first : edge.second); - continue; - } - } - } - - // iterate over the eliminated polygons and remove them from the input polygons - for (auto it = eliminated_polies.rbegin(); it != eliminated_polies.rend(); ++it) { - input_polygons.erase(input_polygons.begin() + *it); + } + ~DebugWriter() { + if (enabled_) { + svg << "\n"; + obj << std::flush; + obj.close(); + svg.close(); } } + void write_polygon(const Polygon_2& polygon, const std::string& name) { + if (enabled_) { + write_polygon_to_obj_(obj, vi, true, polygon, name); + write_polygon_to_svg_(svg, polygon, name); + obj << std::flush; + } + } + + void write_segment(const Point_2& p, const Point_2& q, const std::string& name) { + if (enabled_) { + if (last_segment_name_ != name) { + last_segment_name_ = name; + obj << "o " << name << "\n"; + } + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + obj << "v " << CGAL::to_double(q.x()) << " " << CGAL::to_double(q.y()) << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; + + svg << ""; + + obj << std::flush; + } + } + + void write_polygon(const Polygon_with_holes_2& polygon, const std::string& name) { + if (enabled_) { + write_polygon(polygon.outer_boundary(), name); + for (auto hit = polygon.holes_begin(); hit != polygon.holes_end(); ++hit) { + write_polygon(*hit, name); + } + } + } + + void write_polygons(const std::vector& polygons, const std::string& name) { + if (enabled_) { + size_t i = 0; + for (auto& polygon : polygons) { + write_polygon_to_obj_(obj, vi, true, polygon, name + "_" + std::to_string(i++)); + write_polygon_to_svg_(svg, polygon, name); + } + obj << std::flush; + } + } + + void write_polygons(const std::vector& polygons, const std::string& name) { + if (enabled_) { + size_t i = 0; + for (auto& polygon : polygons) { + write_polygon_to_obj_(obj, vi, true, polygon.outer_boundary(), name + "_" + std::to_string(i)); + write_polygon_to_svg_(svg, polygon.outer_boundary(), name); + for (auto hit = polygon.holes_begin(); hit != polygon.holes_end(); ++hit) { + write_polygon_to_obj_(obj, vi, true, *hit, name + "_" + std::to_string(i)); + write_polygon_to_svg_(svg, *hit, name); + } + } + obj << std::flush; + } + } + + private: + std::ofstream obj; + size_t vi; + std::ofstream svg; + bool enabled_; + std::string last_segment_name_; + + void write_polygon_to_svg_(std::ostream& ofs, const Polygon_2& polygon, const std::string& class_name = "") { + ofs << "x()) << "," << -CGAL::to_double(vit->y()) << " "; + } + ofs << "\"/>\n"; + } + + void write_polygon_to_obj_(std::ofstream& ofs, size_t& vertex_index, bool as_line, const Polygon_2& polygon, const std::string& name) { + ofs << "o " << name << "\n"; // Object name + + // Write vertices + for (auto vit = polygon.vertices_begin(); vit != polygon.vertices_end(); ++vit) { + ofs << "v " << CGAL::to_double(vit->x()) << " " << CGAL::to_double(vit->y()) << " 0\n"; + } + + if (as_line) { + // Write line segments (edges) + for (size_t j = 0; j < polygon.size(); ++j) { + ofs << "l " << vertex_index + j << " " << vertex_index + (j + 1) % polygon.size() << "\n"; + } + } else { + ofs << "f"; + for (size_t j = 0; j < polygon.size(); ++j) { + ofs << " " << vertex_index + j; + } + ofs << "\n"; + } + + vertex_index += polygon.size(); + } +}; + +void eliminate_overlaps(double OVERLAP_RESOLUTION_DISTANCE, std::vector& polygons) { + // solve overlaps by means of subtraction + // loop over overlaps and subtract the smaller polygon from the larger one + + std::set eliminated_polies; + /* - if constexpr (false) { - // solve overlap by means of union into components - std::vector> adj(input_polygons.size()); - for (const auto& edge : overlaps) { - adj[edge.first].push_back(edge.second); - adj[edge.second].push_back(edge.first); - } - - std::vector visited(input_polygons.size(), false); - std::vector> connected_components; - - for (size_t v = 0; v < input_polygons.size(); ++v) { - if (!visited[v]) { - connected_components.emplace_back(); - - std::stack stack; - stack.push(v); - visited[v] = true; - - while (!stack.empty()) { - size_t u = stack.top(); - stack.pop(); - connected_components.back().push_back(u); - - for (size_t neighbor : adj[u]) { - if (!visited[neighbor]) { - visited[neighbor] = true; - stack.push(neighbor); - } - } - } - } - } - - std::vector fused_polies; - - for (auto& comp : connected_components) { - std::vector comp_polies; - if (comp.size() == 1) { - fused_polies.push_back(input_polygons[comp.front()]); - } else { - for (auto& c : comp) { - comp_polies.push_back(input_polygons[c]); - } - fused_polies.push_back(fuse_with_offset(comp_polies, 1.e-2)); - } - } - -#ifdef SVGFILL_DEBUG - for (auto it = fused_polies.begin(); it != fused_polies.end(); ++it) { - write_polygon_to_obj(obj, vi, true, *it, "fused_poly_" + std::to_string(std::distance(fused_polies.begin(), it))); - write_polygon_to_svg(svg, *it); - } -#endif - - input_polygons = fused_polies; + std::map overlap_counts; + for (auto& p : overlaps) { + overlap_counts[p.first]++; + overlap_counts[p.second]++; } */ - { - // [NB Nov 6] we cannot do this anymore because it could revert the spacing between input polygons - // that touch in the corner. - // Now that overlaps/touches at corners are handled more locally only a small indent is produced - // which would be undone by means of an inset+offset. - // - // [NB Nov 10] this is actually still necessary though, but we apply a much smaller distance now - // to keep the overlap eliminations in tact - // - // Inset-offset to remove tiny details that may cause enourmous spikes in offsets - for (auto& r : input_polygons) { - auto ps = create_and_convert_offset_polygon(-polygon_offset_distance / 10000., r); - if (ps.size() == 1) { - auto r2 = ps.front(); - ps = create_and_convert_offset_polygon(+polygon_offset_distance / 10000., r2); - if (ps.size() == 1) { - r = ps.front(); + auto overlaps = find_overlaps(polygons); + + for (const auto& edge : overlaps) { + // Skip eliminated + if (eliminated_polies.find(edge.first) != eliminated_polies.end() || + eliminated_polies.find(edge.second) != eliminated_polies.end()) { + continue; + } + + // Many overlaps indicate an aggregated polygon, skip them + /* + if (overlap_counts[edge.first] > 10 || overlap_counts[edge.second] > 10) { + if (overlap_counts[edge.first] > 10) { + eliminated_polies.insert(edge.first); + } + if (overlap_counts[edge.second] > 10) { + eliminated_polies.insert(edge.second); + } + continue; + } + */ + + // these are pointers now, because otherwise swap would not work? + auto* poly1 = &polygons[edge.first]; + auto* poly2 = &polygons[edge.second]; + + // @todo this is applied during overlap processing, maybe better after the boolean operation, + // because they can be come small or narrow when overlaps are resolved + + // Populate eliminated_polies with small polygons + // This can happen over time when modifications are made to the polygons to solve overlaps + bool skip = false; + if (poly1->area() < 1.e-2) { + eliminated_polies.insert(edge.first); + skip = true; + } + if (poly2->area() < 1.e-2) { + eliminated_polies.insert(edge.second); + skip = true; + } + // Small slivers are also just eliminated + if (!maybe_take_first_if_single_item(create_and_convert_offset_polygon(-1.e-1, *poly1))) { + eliminated_polies.insert(edge.first); + skip = true; + } + if (!maybe_take_first_if_single_item(create_and_convert_offset_polygon(-1.e-1, *poly2))) { + eliminated_polies.insert(edge.second); + skip = true; + } + if (skip) { + continue; + } + + // Skip polygons that have a very high intersection over union + // ratio, which indicates that they are very likely duplicates + if (CGAL::do_intersect(*poly1, *poly2)) { + std::vector result; + CGAL::intersection(*poly1, *poly2, std::back_inserter(result)); + typename K::FT intersection_area = 0; + for (auto& r : result) { + auto poly_area = r.outer_boundary().area(); + for (auto& h : r.holes()) { + poly_area -= h.area(); } + intersection_area += poly_area; + } + CGAL::Polygon_with_holes_2 poly12; + CGAL::join(*poly1, *poly2, poly12); + typename K::FT union_area = poly12.outer_boundary().area(); + for (auto& h : poly12.holes()) { + union_area -= h.area(); + } + if (union_area > 0 && intersection_area / union_area > 0.99) { + // std::cerr << intersection_area / union_area << std::endl; + eliminated_polies.insert(edge.first); + continue; + } + } + + if (!(poly1->is_simple() && poly2->is_simple())) { + continue; + } + + { + std::vector result; + + boost::optional mp1, mp2, mp3, mp4; + bool swap = false; + + swap = poly1->area() <= poly2->area(); + if (swap) { + std::swap(poly1, poly2); + } + + bool success = false; + if ((mp1 = maybe_take_first_if_single_item(create_and_convert_offset_polygon(OVERLAP_RESOLUTION_DISTANCE, *poly2)))) { + if ((mp2 = subtract_retain_largest(*poly1, *mp1))) { + if ((mp3 = maybe_take_first_if_single_item(create_and_convert_offset_polygon(OVERLAP_RESOLUTION_DISTANCE * 2, *mp2)))) { + if ((mp4 = subtract_retain_largest(*poly2, *mp3))) { + *poly1 = *mp2; + *poly2 = *mp4; + success = true; + } + } + } + } + + if (!success) { + eliminated_polies.insert(swap ? edge.first : edge.second); + continue; } } } -#ifdef SVGFILL_DEBUG - for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { - write_polygon_to_obj(obj, vi, true, *it, "processed_input_poly_" + std::to_string(std::distance(input_polygons.begin(), it))); - write_polygon_to_svg(svg, *it); + // iterate over the eliminated polygons and remove them from the input polygons + for (auto it = eliminated_polies.rbegin(); it != eliminated_polies.rend(); ++it) { + polygons.erase(polygons.begin() + *it); } -#endif +} - // Unfortunately CGAL does not seem to have a ready to use aabb primitive for segments in 2D, - // so we have to use 3D segments and aabb tree for 2D polygons. - std::list> all_segs; - std::unordered_map*, decltype(input_polygons.begin())> seg_to_poly; +class SegmentLookup { + public: + typedef std::vector::const_iterator PolygonIt; - for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { - for (auto eit = it->edges_begin(); eit != it->edges_end(); ++eit) { - CGAL::Segment_3 seg3d( - CGAL::Point_3(eit->source().x(), eit->source().y(), 0), - CGAL::Point_3(eit->target().x(), eit->target().y(), 0) - ); - all_segs.push_back(seg3d); - seg_to_poly[&all_segs.back()] = it; - } - } - - using TreeTraits = CGAL::AABB_traits>::iterator>>; - using Tree = CGAL::AABB_tree; - - Tree tree(all_segs.begin(), all_segs.end()); - tree.accelerate_distance_queries(); - - auto input_polygon_boundary = - [&](const Point_2& p, double tol = 1e-5) -> decltype(input_polygons.begin()) + SegmentLookup(const std::vector& polygons) + : polygons_ref_(polygons) { + // Unfortunately CGAL does not seem to have a ready to use aabb primitive for segments in 2D, + // so we have to use 3D segments and aabb tree for 2D polygons. + for (auto it = polygons.begin(); it != polygons.end(); ++it) { + for (auto eit = it->edges_begin(); eit != it->edges_end(); ++eit) { + CGAL::Segment_3 seg3d( + CGAL::Point_3(eit->source().x(), eit->source().y(), 0), + CGAL::Point_3(eit->target().x(), eit->target().y(), 0)); + all_segs.push_back(seg3d); + seg_to_poly[&all_segs.back()] = it; + } + } + tree_ = Tree(all_segs.begin(), all_segs.end()); + tree_.accelerate_distance_queries(); + } + + // This part is the most computationally expensive. Caching effectively halves the lookup time here, since every vertex on the subdivided corridor mesh has on average two outgoing edges. + PolygonIt input_polygon_boundary(const Point_2& p, double tol = 1e-5) { + auto it = input_polygon_boundary_cache_.find(p); + if (it != input_polygon_boundary_cache_.end()) { + return it->second; + } + // Find closest point & corresponding segment - auto closest = tree.closest_point_and_primitive(CGAL::Point_3(p.x(), p.y(), 0)); + auto closest = tree_.closest_point_and_primitive(CGAL::Point_3(p.x(), p.y(), 0)); const auto& closest_pt = closest.first; auto seg_ptr = &*closest.second; double d = CGAL::to_double(CGAL::squared_distance(p, Point_2(closest_pt.x(), closest_pt.y()))); + + PolygonIt res; if (d < (tol * tol)) { - return seg_to_poly.find(seg_ptr)->second; + res = seg_to_poly.find(seg_ptr)->second; + } else { + res = polygons_ref_.end(); } - return input_polygons.end(); + + input_polygon_boundary_cache_[p] = res; + return res; }; - /* - auto input_polygon_boundary = [&input_polygons](const CGAL::Point_2& p, double tol = 1.e-5) { - // unfortunately some imprecision slept into the code so we can't - // so we can't just use has_on_boundary() anymore - double D = std::numeric_limits::infinity(); - for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { - for (auto jt = it->edges_begin(); jt != it->edges_end(); ++jt) { - const auto& seg = *jt; - auto d = std::sqrt(CGAL::to_double(CGAL::squared_distance(seg, p))); - if (d < D) { - D = d; - } - if (d < tol) { - return it; - } - } - } - return input_polygons.end(); - }; - */ - - auto close_input_point = [&input_polygons](const CGAL::Point_2& P) { + std::pair> close_input_point(const CGAL::Point_2& P) const { + // @todo use tree CGAL::Point_2 closest; double closest_distance = std::numeric_limits::infinity(); - auto input_it = input_polygons.end(); + auto input_it = polygons_ref_.end(); // unfortunately some imprecision slept into the code so we can't // so we can't just use has_on_boundary() anymore - for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + for (auto it = polygons_ref_.begin(); it != polygons_ref_.end(); ++it) { for (auto& p : *it) { auto d = std::sqrt(CGAL::to_double(CGAL::squared_distance(P, p))); if (d < closest_distance) { @@ -697,14 +670,16 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v return std::make_pair(input_it, closest); }; - auto project_input_point = [&input_polygons](const CGAL::Point_2& P) { + std::pair> project_input_point(const CGAL::Point_2& P) const { + // @todo use tree + CGAL::Point_2 closest; typename K::FT closest_sq_distance = std::numeric_limits::infinity(); - auto input_it = input_polygons.end(); + auto input_it = polygons_ref_.end(); // unfortunately some imprecision slept into the code so we can't // so we can't just use has_on_boundary() anymore - for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + for (auto it = polygons_ref_.begin(); it != polygons_ref_.end(); ++it) { for (auto jt = it->edges_begin(); jt != it->edges_end(); ++jt) { auto Pp = jt->supporting_line().projection(P); auto d = CGAL::squared_distance(Pp, P); @@ -719,224 +694,52 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v return std::make_pair(input_it, closest); }; - // Find the outer perimeter using offset - union - negative offset - std::vector offset_polygons; - for (auto& r : input_polygons) { - auto R = r; - if (!R.is_counterclockwise_oriented()) { - R.reverse_orientation(); - } +private: + using TreeTraits = CGAL::AABB_traits>::iterator>>; + using Tree = CGAL::AABB_tree; - // Overlap removal can also result in close points causing problems when converted into non-exact nt - remove_close_points(R); + const std::vector& polygons_ref_; + std::list> all_segs; + std::unordered_map*, PolygonIt> seg_to_poly; + Tree tree_; - auto ps = create_and_convert_offset_polygon(polygon_offset_distance, R); - for (auto& p : ps) { - if (!p.is_simple()) { - /*{ - std::cerr << "input ["; - bool first = true; - for (auto& pp : r) { - if (!first) { - std::cerr << ","; - } - first = false; - std::cerr << "(" << pp.x() << "," << pp.y() << ")"; - } - std::cerr << "]" << std::endl; - } + std::map::const_iterator> input_polygon_boundary_cache_; +}; - { - std::cerr << "["; - bool first = true; - for (auto& pp : p) { - if (!first) { - std::cerr << ","; - } - first = false; - std::cerr << "(" << pp.x() << "," << pp.y() << ")"; - } - std::cerr << "]" << std::endl; - }*/ - - throw std::runtime_error("Complex polygon originated from offset"); - } - } - offset_polygons.insert(offset_polygons.end(), ps.begin(), ps.end()); - } - -#ifdef SVGFILL_DEBUG - for (auto it = offset_polygons.begin(); it != offset_polygons.end(); ++it) { - write_polygon_to_obj(obj, vi, true, *it, "offset_poly_" + std::to_string(std::distance(offset_polygons.begin(), it))); - write_polygon_to_svg(svg, *it); - } -#endif - - // Perform Boolean union on the offset polygons - std::vector unioned_polygons; - CGAL::join(offset_polygons.begin(), offset_polygons.end(), std::back_inserter(unioned_polygons)); - - if (unioned_polygons.size() > 1) { - // @todo this is currently one of the major limitations in the code that still can be eliminated - // by grouping the input polygons by their perimiter polygon in unioned_polygons - std::sort(unioned_polygons.begin(), unioned_polygons.end(), [](auto& p, auto& q) { return p.outer_boundary().area() > q.outer_boundary().area(); }); - } - -#ifdef SVGFILL_DEBUG - write_polygon_to_obj(obj, vi, true, unioned_polygons.front().outer_boundary(), "offset_poly_joined"); - write_polygon_to_svg(svg, unioned_polygons.front().outer_boundary()); - -#endif - - Polygon_2 fused_removed_close_points; - { - std::vector> ps; - auto& p = unioned_polygons.front().outer_boundary(); - ps.reserve(p.size()); - auto I = p.begin(); - auto J = I + 1; - for (;; ++J) { - bool last = false; - if (J == p.end()) { - J = p.begin(); - last = true; - } - // if (CGAL::squared_distance(*I, *J) > (polygon_offset_distance * polygon_offset_distance)) { - if (CGAL::squared_distance(*I, *J) > (1.e-4 * 1.e-4)) { - ps.push_back(*J); - I = J; - } - if (last) { - break; - } - } - fused_removed_close_points = Polygon_2(ps.begin(), ps.end()); - } - - // Apply negative offset to get the outer perimeter polygon - auto inner_offset = create_and_convert_offset_polygon( - // Because polygon_offset is inexact, make sure our inset distance is slightly larger - // std::nexttoward(-polygon_offset_distance, -std::numeric_limits::infinity()), - - // 1.e-8 even was too little and still resulted in slivers of triangle around the perimeter - -polygon_offset_distance - OUTER_PERIMITER_ADDITIONAL_INSET_AMOUNT, - fused_removed_close_points); - -#ifdef SVGFILL_DEBUG - write_polygon_to_obj(obj, vi, true, inner_offset.front(), "joined_inset"); - write_polygon_to_svg(svg, inner_offset.front()); -#endif - - /* - // there is non-insignificant chance that around the outer boundary, vertices are located in - // between of the input polyhedra, but intermediate vertices result in triangles that will no longer - // span between the two spaces with two edges and therefore cause the topological centre line - // to no run up to the center. Eliminate all vertices that are not on the polyhedral boundary of polygon. - - // this theory proved to be false. once we have topological end points in our graph that are - // connected to input polyhedra to form closed cells, we move those topological end points to - // the average of the input polyhedra corner points, thus effectively also moving them outwards. - { - for (auto& i : inner_offset) { - std::vector> ps; - for (auto& p : i) { - if (input_polygon_boundary(p, 1.e-3) != input_polygons.end()) { - ps.push_back(p); - } - } - i = Polygon_2(ps.begin(), ps.end()); +Polygon_2 subdivide_polygon(double max_distance, const Polygon_2 & p) { + std::vector points; + for (auto it = p.edges_begin(); it != p.edges_end(); ++it) { + const auto& seg = *it; + auto num_splits = (int)std::ceil(std::sqrt(CGAL::to_double(seg.squared_length())) / max_distance) - 1; + points.push_back(seg.source()); + for (auto i = 0; i < num_splits; ++i) { + auto d = (seg.target() - seg.source()) / (num_splits + 1) * (i + 1); + points.push_back(seg.source() + d); } } + return Polygon_2(points.begin(), points.end()); +}; -#ifdef SVGFILL_DEBUG - write_polygon_to_obj(obj, vi, true, inner_offset.front(), "joined_inset_cleaned"); - write_polygon_to_svg(svg, inner_offset.front()); -#endif - */ - - // Subtract original polygons from outer perimeter - std::vector difference_result, difference_result_subdivided; - for (auto& i : inner_offset) { - std::vector working_copy; - working_copy.emplace_back(i); - - for (auto& r : input_polygons) { - std::vector temp_working_copy; - for (auto& wc : working_copy) { - CGAL::difference(wc, r, std::back_inserter(temp_working_copy)); - } - working_copy = temp_working_copy; - } - difference_result.insert(difference_result.end(), working_copy.begin(), working_copy.end()); +Polygon_with_holes_2 subdivide_polygon(double max_distance, const Polygon_with_holes_2& pwh) { + Polygon_2 outer = subdivide_polygon(max_distance, pwh.outer_boundary()); + std::vector holes; + for (auto hit = pwh.holes_begin(); hit != pwh.holes_end(); ++hit) { + holes.push_back(subdivide_polygon(max_distance, *hit)); } + return Polygon_with_holes_2(outer, holes.begin(), holes.end()); +}; - // subdivide difference_result to have better behave triangulation - - { - const double max_distance = polygon_offset_distance / 8.; - auto subdivide_polygon = [max_distance](const Polygon_2& p) { - std::vector points; - for (auto it = p.edges_begin(); it != p.edges_end(); ++it) { - const auto& seg = *it; - auto num_splits = (int)std::ceil(std::sqrt(CGAL::to_double(seg.squared_length())) / max_distance) - 1; - points.push_back(seg.source()); - for (auto i = 0; i < num_splits; ++i) { - auto d = (seg.target() - seg.source()) / (num_splits + 1) * (i + 1); - points.push_back(seg.source() + d); - } - } - return Polygon_2(points.begin(), points.end()); - }; - - for (auto& pwh : difference_result) { - // Subdivide outer boundary - Polygon_2 outer = subdivide_polygon(pwh.outer_boundary()); - // Subdivide holes - std::vector holes; - for (auto hit = pwh.holes_begin(); hit != pwh.holes_end(); ++hit) { - holes.push_back(subdivide_polygon(*hit)); - } - // Construct new Polygon_with_holes_2 - difference_result_subdivided.push_back(Polygon_with_holes_2(outer, holes.begin(), holes.end())); - } - } - -#ifdef SVGFILL_DEBUG - for (auto it = difference_result_subdivided.begin(); it != difference_result_subdivided.end(); ++it) { - auto i = std::distance(difference_result_subdivided.begin(), it); - write_polygon_to_obj(obj, vi, true, it->outer_boundary(), "difference_result_subdivided_" + std::to_string(i)); - write_polygon_to_svg(svg, it->outer_boundary()); - for (auto& p : it->holes()) { - write_polygon_to_obj(obj, vi, true, p, "difference_result_subdivided_" + std::to_string(i)); - write_polygon_to_svg(svg, p); - } - } -#endif - - std::list> triangular_polygons; - - for (auto& pwh : difference_result_subdivided) { - CGAL::Polygon_triangulation_decomposition_2 decompositor; - decompositor(pwh, std::back_inserter(triangular_polygons)); - } - - triangular_polygons.erase(std::remove_if(triangular_polygons.begin(), triangular_polygons.end(), [](const CGAL::Polygon_2& p) { - return CGAL::to_double(p.area()) < 1.e-8; - }), triangular_polygons.end()); - -#ifdef SVGFILL_DEBUG - for (auto it = triangular_polygons.begin(); it != triangular_polygons.end(); ++it) { - write_polygon_to_obj(obj, vi, false, *it, "tri_" + std::to_string(std::distance(triangular_polygons.begin(), it))); - write_polygon_to_svg(svg, *it); - } -#endif - +std::tuple< + std::map>, + std::map>, + std::map, std::vector*>>> +build_line_graph(const std::vector& input_polygons, SegmentLookup& segment_lookup, const std::vector& triangular_polygons) { // Build maps of triangle -> edge and edge -> triangle in order to do traversal on the 'corridor mesh' - std::map, std::vector*>> segment_to_facet; - std::map, std::vector*>> segment_to_input_facet; + std::map, std::vector*>> segment_to_facet; + std::map, std::vector*>> segment_to_input_facet; std::map, Point_2> segment_to_midpoint; std::map> midpoint_to_segment; - std::map*, std::vector>> facet_to_segment; + std::map*, std::vector>> facet_to_segment; for (auto& tri : triangular_polygons) { for (size_t i = 0; i < 3; ++i) { @@ -950,26 +753,14 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v } } - // This part is the most computationally expensive. Caching effectively halves the lookup time here, since every vertex has two outgoing edges. - std::map input_polygon_boundary_cache; - auto cached_input_polygon_boundary = [&](const Point_2& p, double tol = 1e-5) -> decltype(input_polygons.begin()) - { - auto it = input_polygon_boundary_cache.find(p); - if (it == input_polygon_boundary_cache.end()) { - auto index = input_polygon_boundary(p, tol); - input_polygon_boundary_cache[p] = index; - return index; - } else { - return it->second; - } - }; + // @todo The smarter thing to do probably after creating the corridor mesh, register segments wrt to originating input polygon(s) and maintain that mapping when subdividing // Register midpoints on the edges within the 'corridor mesh' that span multiple input polygons for (auto& p : segment_to_facet) { auto center = CGAL::ORIGIN + (((p.first.first - CGAL::ORIGIN) + (p.first.second - CGAL::ORIGIN)) / 2); - auto p1index = cached_input_polygon_boundary(p.first.first); - auto p2index = cached_input_polygon_boundary(p.first.second); + auto p1index = segment_lookup.input_polygon_boundary(p.first.first); + auto p2index = segment_lookup.input_polygon_boundary(p.first.second); segment_to_input_facet[p.first].push_back(&*p1index); segment_to_input_facet[p.first].push_back(&*p2index); @@ -978,17 +769,8 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v segment_to_midpoint[p.first] = center; midpoint_to_segment[center] = p.first; } - - if (p1index != input_polygons.end() && p2index != input_polygons.end() && p1index != p2index) { - segment_to_midpoint[p.first] = center; - midpoint_to_segment[center] = p.first; - } } -#ifdef SVGFILL_DEBUG - obj << "o network_1\n"; -#endif - // Observe corridor mesh topology to join edge midpoints into a network std::map> line_graph; for (auto& p : segment_to_midpoint) { @@ -1000,20 +782,15 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v decltype(segment_to_midpoint)::const_iterator it; if ((it = segment_to_midpoint.find(r)) != segment_to_midpoint.end()) { line_graph[p.second].push_back(it->second); - -#ifdef SVGFILL_DEBUG - obj << "v " << CGAL::to_double(p.second.x()) << " " << CGAL::to_double(p.second.y()) << " 0\n"; - obj << "v " << CGAL::to_double(it->second.x()) << " " << CGAL::to_double(it->second.y()) << " 0\n"; - obj << "l " << vi++; - obj << " " << vi++ << "\n"; - - svg << "second.x()) << "\" y2=\"" << CGAL::to_double(it->second.y()) << "\" />"; -#endif } } } } + return {line_graph, midpoint_to_segment, segment_to_input_facet}; +} + +std::set> find_triangles(const std::map>& line_graph) { // Find triangles in this network often occuring at junctions in the corridor mesh std::set> triangles; std::function&)> find_triangles_recursive; @@ -1024,7 +801,7 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v const std::vector& neighbors_current = line_graph.at(path.back()); if (std::find(neighbors_current.begin(), neighbors_current.end(), path.front()) != neighbors_current.end()) { // We found a triangle, add it to the set - Triangle triangle = { path[0], path[1], path[2] }; + Triangle triangle = {path[0], path[1], path[2]}; std::sort(triangle.begin(), triangle.end()); triangles.insert(triangle); } @@ -1037,29 +814,28 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v if (std::find(path.begin(), path.end(), neighbor) == path.end()) { path.push_back(neighbor); find_triangles_recursive(path); - path.pop_back(); // Backtrack + path.pop_back(); // Backtrack } } }; for (auto& p : line_graph) { - std::vector ps = { p.first }; + std::vector ps = {p.first}; find_triangles_recursive(ps); } - // For every triangle found in the network we eliminate one edge to break the cycle - // The edge we eliminate is the edge with the greatest angle with any of it's neighbours + return triangles; +} - // non exact time, we need sqrt +std::set> eliminate_triangles(const std::map>& line_graph) { + auto triangles = find_triangles(line_graph); + + // @todo this currently uses a simple cartesian kernel for performance for support of sqrt, but + // this should be possible to rewrite as ratios/slopes in the exact kernel as well using SK = CGAL::Simple_cartesian; CGAL::Cartesian_converter C{}; -#ifdef SVGFILL_DEBUG - obj << "o eliminated\n"; -#endif - std::set> eliminated_segments; - for (auto& t : triangles) { Triangle st; std::transform(t.begin(), t.end(), st.begin(), C); @@ -1075,7 +851,7 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v double max_abs_dot = 0.; { - auto& ni = line_graph[t[i]]; + auto& ni = line_graph.find(t[i])->second; for (auto& n : ni) { if (std::find(t.begin(), t.end(), n) == t.end()) { // not contained in triangle @@ -1092,7 +868,7 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v } { - auto& nj = line_graph[t[j]]; + auto& nj = line_graph.find(t[j])->second; for (auto& n : nj) { if (std::find(t.begin(), t.end(), n) == t.end()) { // not contained in triangle @@ -1106,7 +882,6 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v } } } - } if (max_abs_dot < global_min_abs_dot) { @@ -1119,176 +894,132 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v auto i = global_min_abs_dot_index; auto j = (i + 2) % 3; - eliminated_segments.insert({ t[i], t[j] }); - eliminated_segments.insert({ t[j], t[i] }); - -#ifdef SVGFILL_DEBUG - obj << "v " << st[j].x() << " " << st[j].y() << " 0\n"; - obj << "v " << st[i].x() << " " << st[i].y() << " 0\n"; - obj << "l " << vi++; - obj << " " << vi++ << "\n"; - - svg << ""; -#endif + eliminated_segments.insert({t[i], t[j]}); + eliminated_segments.insert({t[j], t[i]}); } - } - Graph2D G2(line_graph); - for (auto& e : eliminated_segments) { - G2.remove_edge(e.first, e.second); + return eliminated_segments; +} + +bool is_parallel_2degree_node(Graph2D::vertex_const_iterator vit) { + auto it = vit->second.begin(); + auto& P = *it++; + auto& Q = *it++; + auto e1 = P - vit->first; + auto e2 = vit->first - Q; + if (e1.squared_length() == 0 || e2.squared_length() == 0) { + // @todo why does this happen? + return false; } + e1 /= std::sqrt(CGAL::to_double(e1.squared_length())); + e2 /= std::sqrt(CGAL::to_double(e2.squared_length())); + return std::abs(CGAL::to_double(e1 * e2)) > (1. - 1.e-5); +}; - auto G = G2.weld_vertices(); -#ifdef SVGFILL_DEBUG - obj << "o network_2\n"; - for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { - obj << "v " << CGAL::to_double(it->first.x()) << " " << CGAL::to_double(it->first.y()) << " 0\n"; - obj << "v " << CGAL::to_double(it->second.x()) << " " << CGAL::to_double(it->second.y()) << " 0\n"; - obj << "l " << vi++; - obj << " " << vi++ << "\n"; - } - obj << std::flush; -#endif - - auto is_parallel_2degree_node = [](decltype(G)::vertex_const_iterator vit) { - auto it = vit->second.begin(); - auto& P = *it++; - auto& Q = *it++; - auto e1 = P - vit->first; - auto e2 = vit->first - Q; - if (e1.squared_length() == 0 || e2.squared_length() == 0) { - // @todo why does this happen? - return false; - } - e1 /= std::sqrt(CGAL::to_double(e1.squared_length())); - e2 /= std::sqrt(CGAL::to_double(e2.squared_length())); - return std::abs(CGAL::to_double(e1 * e2)) > (1. - 1.e-5); - }; - - { - // Remove colinear vertices - size_t n_vertices_removed = 0; - for (auto vit = G.vertices_begin(); vit != G.vertices_end();) { - if (vit->second.size() == 2) { - if (is_parallel_2degree_node(vit)) { - vit = G.eliminate_vertex(vit); - ++n_vertices_removed; - } else { - ++vit; - } +void eliminate_colinear_vertices(Graph2D& G) { + size_t n_vertices_removed = 0; + for (auto vit = G.vertices_begin(); vit != G.vertices_end();) { + if (vit->second.size() == 2) { + if (is_parallel_2degree_node(vit)) { + vit = G.eliminate_vertex(vit); + ++n_vertices_removed; } else { ++vit; } + } else { + ++vit; } - // std::cout << "Eliminated " << n_vertices_removed << " vertices" << std::endl; } +} - // Ortho edge slide - { - std::list> edges_to_remove, edges_to_insert; +void edge_slide(Graph2D& G) { + std::list> edges_to_remove, edges_to_insert; - for (auto vit = G.vertices_begin(); vit != G.vertices_end(); ++vit) { - auto& selected = vit->first; + for (auto vit = G.vertices_begin(); vit != G.vertices_end(); ++vit) { + auto& selected = vit->first; - if (vit->second.size() >= 3) { - for (auto vjt = vit->second.begin(); vjt != vit->second.end(); ++vjt) { - auto& neighbour = *vjt; - bool processed_neighbour = false; + if (vit->second.size() >= 3) { + for (auto vjt = vit->second.begin(); vjt != vit->second.end(); ++vjt) { + auto& neighbour = *vjt; + bool processed_neighbour = false; - if (G.find(neighbour)->second.size() == 2 && !is_parallel_2degree_node(G.find(neighbour))) { - auto vkt = G.find(neighbour)->second.begin(); - if (selected == *vkt) { - vkt++; - } - auto& other = *vkt; + if (G.find(neighbour)->second.size() == 2 && !is_parallel_2degree_node(G.find(neighbour))) { + auto vkt = G.find(neighbour)->second.begin(); + if (selected == *vkt) { + vkt++; + } + auto& other = *vkt; - if ((other - neighbour).squared_length() < (neighbour - selected).squared_length()) { - continue; - } + if ((other - neighbour).squared_length() < (neighbour - selected).squared_length()) { + continue; + } - auto incoming = CGAL::Ray_2(other, neighbour - other); - boost::optional> closest_neighbouring_segment; - boost::optional> closest_intersection_point; - K::FT sq_distance_along_ray = std::numeric_limits::infinity(); + auto incoming = CGAL::Ray_2(other, neighbour - other); + boost::optional> closest_neighbouring_segment; + boost::optional> closest_intersection_point; + K::FT sq_distance_along_ray = std::numeric_limits::infinity(); - for (auto vlt = vit->second.begin(); vlt != vit->second.end(); ++vlt) { - auto& other_neighbour = *vlt; - if (vlt != vjt) { - CGAL::Segment_2 neighbouring_segment(selected, other_neighbour); - auto x = CGAL::intersection(incoming, neighbouring_segment); - if (x) { - if (auto* xp = variant_get>(&*x)) { - auto dist = ((*xp) - other).squared_length(); - if (dist < sq_distance_along_ray) { - closest_neighbouring_segment = neighbouring_segment; - closest_intersection_point = *xp; - sq_distance_along_ray = dist; - } + for (auto vlt = vit->second.begin(); vlt != vit->second.end(); ++vlt) { + auto& other_neighbour = *vlt; + if (vlt != vjt) { + CGAL::Segment_2 neighbouring_segment(selected, other_neighbour); + auto x = CGAL::intersection(incoming, neighbouring_segment); + if (x) { + if (auto* xp = variant_get>(&*x)) { + auto dist = ((*xp) - other).squared_length(); + if (dist < sq_distance_along_ray) { + closest_neighbouring_segment = neighbouring_segment; + closest_intersection_point = *xp; + sq_distance_along_ray = dist; } } } } - - if (closest_intersection_point && closest_neighbouring_segment) { - edges_to_remove.push_back(*closest_neighbouring_segment); - edges_to_remove.push_back({ neighbour, selected }); - edges_to_insert.push_back({ closest_neighbouring_segment->source(), *closest_intersection_point }); - edges_to_insert.push_back({ closest_neighbouring_segment->target(), *closest_intersection_point }); - edges_to_insert.push_back({ neighbour, *closest_intersection_point }); - - processed_neighbour = true; - } } - if (processed_neighbour) { - // Only one neigbour is processed because otherwise we obtain intersections - break; + + if (closest_intersection_point && closest_neighbouring_segment) { + edges_to_remove.push_back(*closest_neighbouring_segment); + edges_to_remove.push_back({neighbour, selected}); + edges_to_insert.push_back({closest_neighbouring_segment->source(), *closest_intersection_point}); + edges_to_insert.push_back({closest_neighbouring_segment->target(), *closest_intersection_point}); + edges_to_insert.push_back({neighbour, *closest_intersection_point}); + + processed_neighbour = true; } } + if (processed_neighbour) { + // Only one neigbour is processed because otherwise we obtain intersections + break; + } } } - - for (auto& s : edges_to_remove) { - G.remove_edge(s.source(), s.target()); - } - - - for (auto& s : edges_to_insert) { - G.insert(s.source(), s.target()); - } - -#ifdef SVGFILL_DEBUG - obj << "o network_3\n"; - for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { - obj << "v " << CGAL::to_double(it->first.x()) << " " << CGAL::to_double(it->first.y()) << " 0\n"; - obj << "v " << CGAL::to_double(it->second.x()) << " " << CGAL::to_double(it->second.y()) << " 0\n"; - obj << "l " << vi++; - obj << " " << vi++ << "\n"; - } -#endif } - // Now plot the edges on an arrangement in order to find planar cycles - // and merge the corridor-halves with their neighbouring input polygon - - Arrangement_2 arr; - - for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { - if (it->first == it->second) { - continue; - } - CGAL::insert(arr, Segment_2(it->first, it->second)); + for (auto& s : edges_to_remove) { + G.remove_edge(s.source(), s.target()); } - std::list> move_ops; - std::list> edge_ops; + for (auto& s : edges_to_insert) { + G.insert(s.source(), s.target()); + } +} + +std::list> extend_end_vertices_based_on_input( + const Graph2D& G, + const std::map>& midpoint_to_segment, + const std::map, std::vector*>>& segment_to_input_facet, + const Polygon_list& inner_offset, + const SegmentLookup& segment_lookup +){ + std::list> constructed_segments; for (auto it = G.vertices_begin(); it != G.vertices_end(); ++it) { if (it->second.size() == 1) { auto& M = it->first; - decltype(midpoint_to_segment)::mapped_type* q = nullptr; + const std::pair* q = nullptr; if (midpoint_to_segment.find(M) == midpoint_to_segment.end()) { typename K::FT min_sq_distance = std::numeric_limits::infinity(); @@ -1299,7 +1030,7 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v } } } else { - q = &midpoint_to_segment[M]; + q = &midpoint_to_segment.find(M)->second; } if (q == nullptr) { @@ -1309,7 +1040,7 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v bool handled_as_graph_path = false; // distance from unioned - shoot ray? - if (segment_to_input_facet[*q].size() == 2) { + if (segment_to_input_facet.find(*q)->second.size() == 2) { for (auto& bnd : inner_offset) { // if point M is contained in bnd interior: if (bnd.has_on_bounded_side(M)) { @@ -1339,10 +1070,10 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v Graph2D GGG(bnd); GGG.refine(*GGG.query(*closest_intersection_point, 0.01), *closest_intersection_point); - std::array>, 2> input_points = { { {}, {} } }; + std::array>, 2> input_points = {{{}, {}}}; size_t i = 0; - for (auto& fac : segment_to_input_facet[*q]) { + for (auto& fac : segment_to_input_facet.find(*q)->second) { for (auto it = fac->vertices_begin(); it != fac->vertices_end(); ++it) { auto seg = GGG.query(*it, 0.01); if (seg) { @@ -1361,13 +1092,13 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v if (!a1.empty() && !a2.empty()) { if (M != *closest_intersection_point) { - edge_ops.push_front({ M, *closest_intersection_point }); + constructed_segments.push_front({M, *closest_intersection_point}); } for (auto it = a1.begin(); it != a1.end() && std::next(it) != a1.end(); ++it) { - edge_ops.push_front({ *it, *(std::next(it)) }); + constructed_segments.push_front({*it, *(std::next(it))}); } for (auto it = a2.begin(); it != a2.end() && std::next(it) != a2.end(); ++it) { - edge_ops.push_front({ *it, *(std::next(it)) }); + constructed_segments.push_front({*it, *(std::next(it))}); } handled_as_graph_path = true; @@ -1381,8 +1112,8 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v if (!handled_as_graph_path) { // else we choose to map point to the midpoint of the found two close points. - auto pq = close_input_point(q->first); - auto pr = close_input_point(q->second); + auto pq = segment_lookup.close_input_point(q->first); + auto pr = segment_lookup.close_input_point(q->second); auto Q = pq.second; auto R = pr.second; @@ -1392,16 +1123,16 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v // where Q and R are co-located, because the point R' is further away // in that case M + M-Q should gives is x that we then project onto the // input boundary - // - // - // ┌───────┐ - // │ │ - // │ │ - // │ │ - // └───────o <--Q,R - // - // ────────o <--M - // + // + // + // ┌───────┐ + // │ │ + // │ │ + // │ │ + // └───────o <--Q,R + // + // ────────o <--M + // // ┌───────x───────────────o <---R' // │ │ // │ │ @@ -1410,93 +1141,22 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v // └───────────────────────┘ // @todo is this projection actually necessary or is it already 'exact enough'? - R = project_input_point(M + (M - Q)).second; + R = segment_lookup.project_input_point(M + (M - Q)).second; } auto avg = CGAL::ORIGIN + ((Q - CGAL::ORIGIN) + (R - CGAL::ORIGIN)) / 2; - move_ops.push_front({ M, avg }); - edge_ops.push_front({ avg, Q }); - edge_ops.push_front({ avg, R }); - + constructed_segments.push_front({M, avg}); + constructed_segments.push_front({avg, Q}); + constructed_segments.push_front({avg, R}); } } } -#ifdef SVGFILL_DEBUG - obj << "o network_4\n"; -#endif + return constructed_segments; +} - // note that we actually don't move but draw an edge - for (auto& pq : move_ops) { - if (pq.first == pq.second) { - continue; - } - CGAL::insert(arr, Segment_2(pq.first, pq.second)); - -#ifdef SVGFILL_DEBUG - obj << "v " << CGAL::to_double(pq.first.x()) << " " << CGAL::to_double(pq.first.y()) << " 0\n"; - obj << "v " << CGAL::to_double(pq.second.x()) << " " << CGAL::to_double(pq.second.y()) << " 0\n"; - obj << "l " << vi++; - obj << " " << vi++ << "\n"; -#endif - } - - - for (auto& pq : edge_ops) { - if (pq.first == pq.second) { - continue; - } - CGAL::insert(arr, Segment_2(pq.first, pq.second)); - -#ifdef SVGFILL_DEBUG - obj << "v " << CGAL::to_double(pq.first.x()) << " " << CGAL::to_double(pq.first.y()) << " 0\n"; - obj << "v " << CGAL::to_double(pq.second.x()) << " " << CGAL::to_double(pq.second.y()) << " 0\n"; - obj << "l " << vi++; - obj << " " << vi++ << "\n"; -#endif - } - - // Plot input polygons - for (auto& poly : input_polygons) { - for (size_t i = 0; i != poly.size(); ++i) { - auto j = (i + 1) % poly.size(); - if (poly.vertex(i) == poly.vertex(j)) { - continue; - } - CGAL::insert(arr, Segment_2(poly.vertex(i), poly.vertex(j))); - } - } - - -#ifdef SVGFILL_DEBUG - { - obj << "o arrangement_1\n"; - for (auto it = arr.edges_begin(); it != arr.edges_end(); ++it) { - auto& p = it->source()->point(); - auto& q = it->target()->point(); - obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; - obj << "v " << CGAL::to_double(q.x()) << " " << CGAL::to_double(q.y()) << " 0\n"; - obj << "l " << vi++; - obj << " " << vi++ << "\n"; - } - } -#endif - - /* { - // debug, add outer bounds so that we can plot the face for any remaining edges - auto poly = unioned_polygons.front().outer_boundary(); - for (size_t i = 0; i != poly.size(); ++i) { - auto j = (i + 1) % poly.size(); - CGAL::insert(arr, Segment_2(poly.vertex(i), poly.vertex(j))); - } - } */ - - // Now loop over the arrangement faces, when a face coincides with a point on the - // corridor network we know it needs to be joined with an input polygon. In that - // case the edges need to be eliminated that correspond to original geometry. - - size_t face_id = 0; +void fuse_corridor_halves_with_input(Arrangement_2& arr, Graph2D& G, SegmentLookup& segment_lookup, const Polygon_list& input_polygons, DebugWriter& debug_output) { std::set edges_to_remove; for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { @@ -1535,7 +1195,7 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v auto& p = curr->source()->point(); auto& q = curr->target()->point(); auto center = CGAL::ORIGIN + (((p - CGAL::ORIGIN) + (q - CGAL::ORIGIN)) / 2); - auto p1index = input_polygon_boundary(center); + auto p1index = segment_lookup.input_polygon_boundary(center); const bool on_orig_bound = p1index != input_polygons.end(); if (on_orig_bound) { if (edges_to_remove.find(curr->twin()) != edges_to_remove.end()) { @@ -1553,7 +1213,7 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v auto& p = curr->source()->point(); auto& q = curr->target()->point(); auto center = CGAL::ORIGIN + (((p - CGAL::ORIGIN) + (q - CGAL::ORIGIN)) / 2); - auto p1index = input_polygon_boundary(center); + auto p1index = segment_lookup.input_polygon_boundary(center); const bool on_orig_bound = p1index != input_polygons.end(); if (on_orig_bound) { if (edges_to_remove.find(curr->twin()) != edges_to_remove.end()) { @@ -1569,126 +1229,314 @@ void arrange_cgal_polygons(const std::vector& input_polygons_, std::v } } } - -#ifdef SVGFILL_DEBUG - write_polygon_to_svg(svg, circ_to_poly(it->outer_ccb())); - - obj << "o " << "face_"; - if (is_corridor) { - obj << "corri_"; - } - obj << face_id++ << "\n"; - - std::ostringstream oss; - - { - auto vv = vi; - auto curr = it->outer_ccb(); - do { - auto& p = curr->source()->point(); - obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; - oss << "l " << vi++; - ++curr; - if (curr == it->outer_ccb()) { - oss << " " << vv << "\n"; - } else { - oss << " " << vi << "\n"; - } - } while (curr != it->outer_ccb()); - } - - for (auto jt = it->inner_ccbs_begin(); jt != it->inner_ccbs_end(); ++jt) { - auto vv = vi; - auto curr = *jt; - do { - auto& p = curr->source()->point(); - obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; - oss << "l " << vi++; - ++curr; - if (curr == *jt) { - oss << " " << vv << "\n"; - } else { - oss << " " << vi << "\n"; - } - } while (curr != *jt); - } - - obj << oss.str(); -#endif } size_t remove_id = 0; for (auto& e : edges_to_remove) { -#ifdef SVGFILL_DEBUG - obj << "o " << "remove_" << remove_id++ << "\n"; - { - auto& p = e->source()->point(); - obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; - } - { - auto& p = e->target()->point(); - obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; - } - obj << "l " << vi++; - obj << " " << vi++ << std::endl; -#endif + debug_output.write_segment(e->source()->point(), e->target()->point(), "arr_remove_edge_" + std::to_string(remove_id++)); CGAL::remove_edge(arr, e); } +} + +class timer { + class entry { + public: + entry(std::map::const_iterator start_it) + : start_it(start_it) {} + void stop() { + auto end = std::chrono::high_resolution_clock::now(); + auto duration = std::chrono::duration(end - start_it->second).count(); + std::cerr << "Timing for " << start_it->first << ": " << duration << " ms" << std::endl; + } + + private: + std::map::const_iterator start_it; + }; + + public: + entry start(const std::string& name) { + return timings_.insert({name, std::chrono::high_resolution_clock::now()}).first; + } + + private: + std::map< + std::string, + std::chrono::high_resolution_clock::time_point> + timings_; +}; + +void arrange_cgal_polygons(const std::vector& input_polygons_, std::vector& output_polygons, double polygon_offset_distance = -1.) { + static const double OVERLAP_RESOLUTION_DISTANCE = 1.e-2; + // even larger amount of inset so that outer perimeter is safely within all input polygons even when overlap resolution is applied + // no, `1.e-2 + 1.e-5` creates issues with the outer perimeter, are there other tolerances in play? + static const double OUTER_PERIMITER_ADDITIONAL_INSET_AMOUNT = 1.e-5; + +#ifdef SVGFILL_DEBUG + auto t = std::time(nullptr); + auto tm = *std::localtime(&t); + + std::ostringstream oss; + oss << std::put_time(&tm, "arrangement_%Y%m%d%H%M%S"); + auto now = oss.str(); + DebugWriter debug_output(true, now); +#else + DebugWriter debug_output(false, ""); +#endif + + timer timer; + + auto t0 = timer.start("input"); + + debug_output.write_polygons(input_polygons_, "input"); + + if (polygon_offset_distance < 0.) { + polygon_offset_distance = estimate_polygon_offset_distance(input_polygons_); + } + + // Create copy to make mutable for cleaning + auto input_polygons = input_polygons_; + + for (auto& polygon : input_polygons) { + clean_polygon(polygon); + } + + { + decltype(input_polygons) split_polygons; + for (auto& poly : input_polygons) { + split_self_intersecting_polygon(poly, std::back_inserter(split_polygons)); + } + std::swap(input_polygons, split_polygons); + } + + t0.stop(); + t0 = timer.start("overlap elimination"); + + eliminate_overlaps(OVERLAP_RESOLUTION_DISTANCE, input_polygons); + + t0.stop(); + + // [NB Nov 6] we cannot do this anymore because it could revert the spacing between input polygons + // that touch in the corner. + // Now that overlaps/touches at corners are handled more locally only a small indent is produced + // which would be undone by means of an inset+offset. + // + // [NB Nov 10] this is actually still necessary though, but we apply a much smaller distance now + // to keep the overlap eliminations in tact + // + // Inset-offset to remove tiny details that may cause enourmous spikes in offsets + for (auto& r : input_polygons) { + smooth_polygon(-polygon_offset_distance / 10000., r); + } + + debug_output.write_polygons(input_polygons, "processed_input"); + + SegmentLookup segment_lookup(input_polygons); + + t0 = timer.start("outer perimeter"); + + // Find the outer perimeter using offset - union - negative offset + std::vector offset_polygons; + for (auto& r : input_polygons) { + auto R = r; + if (!R.is_counterclockwise_oriented()) { + R.reverse_orientation(); + } + + // Overlap removal can also result in close points causing problems when converted into non-exact nt + remove_close_points(R); + + auto ps = create_and_convert_offset_polygon(polygon_offset_distance, R); + for (auto& p : ps) { + if (!p.is_simple()) { + throw std::runtime_error("Complex polygon originated from offset"); + } + } + offset_polygons.insert(offset_polygons.end(), ps.begin(), ps.end()); + } + + debug_output.write_polygons(offset_polygons, "offset_input"); + + // Perform Boolean union on the offset polygons + std::vector unioned_polygons; + CGAL::join(offset_polygons.begin(), offset_polygons.end(), std::back_inserter(unioned_polygons)); + + if (unioned_polygons.size() > 1) { + // @todo this is currently one of the major limitations in the code that still can be eliminated + // by grouping the input polygons by their perimiter polygon in unioned_polygons + std::sort(unioned_polygons.begin(), unioned_polygons.end(), [](auto& p, auto& q) { return p.outer_boundary().area() > q.outer_boundary().area(); }); + } + + debug_output.write_polygon(unioned_polygons.front().outer_boundary(), "offset_joined"); + + Polygon_2 fused_removed_close_points = unioned_polygons.front().outer_boundary(); + remove_close_points(fused_removed_close_points, 1.e-4); + + // Apply negative offset to get the outer perimeter polygon + auto inner_offset = create_and_convert_offset_polygon( + // Because polygon_offset is inexact, make sure our inset distance is slightly larger + // std::nexttoward(-polygon_offset_distance, -std::numeric_limits::infinity()), + + // 1.e-8 even was too little and still resulted in slivers of triangle around the perimeter + -polygon_offset_distance - OUTER_PERIMITER_ADDITIONAL_INSET_AMOUNT, + fused_removed_close_points); + + debug_output.write_polygons(inner_offset, "outer_perimiter"); + + t0.stop(); + t0 = timer.start("corridor creation"); + + // Subtract original polygons from outer perimeter + std::vector difference_result, difference_result_subdivided; + for (auto& i : inner_offset) { + std::vector working_copy; + working_copy.emplace_back(i); + + for (auto& r : input_polygons) { + std::vector temp_working_copy; + for (auto& wc : working_copy) { + CGAL::difference(wc, r, std::back_inserter(temp_working_copy)); + } + working_copy = temp_working_copy; + } + difference_result.insert(difference_result.end(), working_copy.begin(), working_copy.end()); + } + + t0.stop(); + t0 = timer.start("corridor triangulation"); + + // subdivide difference_result to have better more detailed triangulation and therefore less-pronounced artefacts in midpoint network + + for (auto& pwh : difference_result) { + difference_result_subdivided.push_back(subdivide_polygon(polygon_offset_distance / 8., pwh)); + // difference_result_subdivided.push_back(subdivide_polygon(polygon_offset_distance / 64., pwh)); + } + + debug_output.write_polygons(difference_result_subdivided, "corridor_subdivided"); + + std::vector> triangular_polygons; + for (auto& pwh : difference_result_subdivided) { + CGAL::Polygon_triangulation_decomposition_2 decompositor; + decompositor(pwh, std::back_inserter(triangular_polygons)); + } + + t0.stop(); + + /* + * // @todo decide whether this is smart or not + * // Would this not hurt topology too much? + triangular_polygons.erase(std::remove_if(triangular_polygons.begin(), triangular_polygons.end(), [](const CGAL::Polygon_2& p) { + return CGAL::to_double(p.area()) < 1.e-8; + }), triangular_polygons.end()); + */ + + t0 = timer.start("center line"); + + debug_output.write_polygons(triangular_polygons, "triangulated_corridor"); + + auto [line_graph, midpoint_to_segment, segment_to_input_facet] = build_line_graph(input_polygons, segment_lookup, triangular_polygons); + for (auto& p : line_graph) { + for (auto& q : p.second) { + debug_output.write_segment(p.first, q, "network_1"); + } + } + + t0.stop(); + + t0 = timer.start("center line cleaning"); + + auto triangles = find_triangles(line_graph); + + // For every triangle found in the network we eliminate one edge to break the cycle + // The edge we eliminate is the edge with the greatest angle with any of it's neighbours + auto eliminated_segments = eliminate_triangles(line_graph); + + Graph2D G2(line_graph); + for (auto& e : eliminated_segments) { + debug_output.write_segment(e.first, e.second, "eliminated"); + G2.remove_edge(e.first, e.second); + } + + auto G = G2.weld_vertices(); + + for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { + debug_output.write_segment(it->first, it->second, "network_2"); + } + + eliminate_colinear_vertices(G); + + edge_slide(G); + + for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { + debug_output.write_segment(it->first, it->second, "network_3"); + } + + t0.stop(); + + t0 = timer.start("topology"); + + auto segments = extend_end_vertices_based_on_input(G, midpoint_to_segment, segment_to_input_facet, inner_offset, segment_lookup); + + // Now plot the edges on an arrangement in order to find planar cycles + // and merge the corridor-halves with their neighbouring input polygon + Arrangement_2 arr; + G.to_arrangement(arr); + + for (auto& pq : segments) { + if (pq.first == pq.second) { + continue; + } + CGAL::insert(arr, Segment_2(pq.first, pq.second)); + + debug_output.write_segment(pq.first, pq.second, "extended_segments"); + } + + // Write input polygons to arrangement_2 + for (auto& poly : input_polygons) { + for (size_t i = 0; i != poly.size(); ++i) { + auto j = (i + 1) % poly.size(); + if (poly.vertex(i) == poly.vertex(j)) { + continue; + } + CGAL::insert(arr, Segment_2(poly.vertex(i), poly.vertex(j))); + } + } + + // Just for the automatic numbering, create a full vector + std::vector temp; + for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { + if (it->is_unbounded()) { + continue; + } + temp.push_back(circ_to_poly(it->outer_ccb())); + } + debug_output.write_polygons(temp, "arr_faces"); + + + /* { + // debug, add outer bounds so that we can plot the face for any remaining edges + auto poly = unioned_polygons.front().outer_boundary(); + for (size_t i = 0; i != poly.size(); ++i) { + auto j = (i + 1) % poly.size(); + CGAL::insert(arr, Segment_2(poly.vertex(i), poly.vertex(j))); + } + } */ + + // Now loop over the arrangement faces, when a face coincides with a point on the + // corridor network we know it needs to be joined with an input polygon. In that + // case the edges need to be eliminated that correspond to original geometry. + + fuse_corridor_halves_with_input(arr, G, segment_lookup, input_polygons, debug_output); + + t0.stop(); for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { if (it->is_unbounded()) { continue; } - output_polygons.push_back(circ_to_poly(it->outer_ccb())); - -#ifdef SVGFILL_DEBUG - write_polygon_to_svg(svg, circ_to_poly(it->outer_ccb())); - - obj << "o " << "merged_face_"; - obj << face_id++ << "\n"; - - std::ostringstream oss; - - { - auto vv = vi; - auto curr = it->outer_ccb(); - do { - auto& p = curr->source()->point(); - obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; - oss << "l " << vi++; - ++curr; - if (curr == it->outer_ccb()) { - oss << " " << vv << "\n"; - } else { - oss << " " << vi << "\n"; - } - } while (curr != it->outer_ccb()); - } - - for (auto jt = it->inner_ccbs_begin(); jt != it->inner_ccbs_end(); ++jt) { - auto vv = vi; - auto curr = *jt; - do { - auto& p = curr->source()->point(); - obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; - oss << "l " << vi++; - ++curr; - if (curr == *jt) { - oss << " " << vv << "\n"; - } else { - oss << " " << vi << "\n"; - } - } while (curr != *jt); - } - - obj << oss.str(); -#endif } -#ifdef SVGFILL_DEBUG - svg << "\n"; -#endif + debug_output.write_polygons(output_polygons, "arr_faces_merged"); } #ifndef SVGFILL_MAIN diff --git a/src/svgfill/src/graph_2d.h b/src/svgfill/src/graph_2d.h index aaaa059b4e..da2b5014ec 100644 --- a/src/svgfill/src/graph_2d.h +++ b/src/svgfill/src/graph_2d.h @@ -2,8 +2,10 @@ #define GRAPH_2D_H #ifdef SVGFILL_DEBUG +#if 0 #include #endif +#endif template class Graph2D { @@ -334,6 +336,16 @@ public: return Graph2D(input_adjacency_list); } + template + void to_arrangement(T& arr) { + for (auto it = edges_begin(); it != edges_end(); ++it) { + if (it->first == it->second) { + continue; + } + CGAL::insert(arr, CGAL::Segment_2(it->first, it->second)); + } + } + void assert_symmetric() { #ifdef SVGFILL_DEBUG #if 0 From b7a8c9b3309caad78f5b6029a20422669bfa17ed Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 11 Feb 2026 11:43:58 +0100 Subject: [PATCH 148/171] Fix for 4.2 schema after a46cdbb907974c03be91bad002ce4f88aae682dd --- src/ifcgeom/mapping/IfcObjectPlacement.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ifcgeom/mapping/IfcObjectPlacement.cpp b/src/ifcgeom/mapping/IfcObjectPlacement.cpp index a0a37dd30f..c4f2f44b1f 100644 --- a/src/ifcgeom/mapping/IfcObjectPlacement.cpp +++ b/src/ifcgeom/mapping/IfcObjectPlacement.cpp @@ -37,7 +37,6 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcObjectPlacement* inst) { } auto self_places = placement->PlacesObject(); - inst->ReferencedByPlacements(); for (auto iter = self_places->begin(); iter != self_places->end(); ++iter) { if ((placement_rel_to_type_ && (*iter)->declaration().is(*placement_rel_to_type_)) || (placement_rel_to_instance_ && (*iter)->as() == placement_rel_to_instance_)) { @@ -47,12 +46,16 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcObjectPlacement* inst) { // Look for two levels deep, we want to know if we're at or *above* the // element we're ignoring, but we don't want to traverse the entire model. +#ifdef SCHEMA_IfcObjectPlacement_HAS_ReferencedByPlacements if (depth < 2) { auto refs = placement->ReferencedByPlacements(); for (auto& ref : *refs) { q.emplace_back(ref, depth + 1); } } +#else + Logger::Warning("Using --site-local-placement or --building-local-placement on IFC4.2 might have issues") +#endif } } From 6bb8abdc5a53024320e451b2bc57bd6cffe880af Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 11 Feb 2026 12:11:23 +0100 Subject: [PATCH 149/171] Fix for 4.2 schema after a46cdbb907974c03be91bad002ce4f88aae682dd --- src/ifcgeom/mapping/IfcObjectPlacement.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeom/mapping/IfcObjectPlacement.cpp b/src/ifcgeom/mapping/IfcObjectPlacement.cpp index c4f2f44b1f..499d9d787b 100644 --- a/src/ifcgeom/mapping/IfcObjectPlacement.cpp +++ b/src/ifcgeom/mapping/IfcObjectPlacement.cpp @@ -54,7 +54,7 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcObjectPlacement* inst) { } } #else - Logger::Warning("Using --site-local-placement or --building-local-placement on IFC4.2 might have issues") + Logger::Warning("Using --site-local-placement or --building-local-placement on IFC4.2 might have issues"); #endif } } From 348e48b49c5b0bf1c4be2ed0ff79f00ab8b0be12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Aliste?= Date: Tue, 10 Feb 2026 18:17:52 -0300 Subject: [PATCH 150/171] Add get_angle_snap_value() helper to tool/snap.py This function retrieves the angle snap increment from Blender's tool_settings.snap_angle_increment property, which was added in Blender 4.2. This allows users to configure the angle snap value through Blender's native UI instead of using hardcoded values. Co-Authored-By: Claude Opus 4.5 --- src/bonsai/bonsai/tool/snap.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index 5c538dfc43..7ee06cd44e 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -114,6 +114,15 @@ class Snap(bonsai.core.tool.Snap): return increment + @classmethod + def get_angle_snap_value(cls, context: bpy.types.Context) -> float: + """Get the angle snap increment from Blender's tool settings. + + :param context: Blender context + :return: Angle snap increment in degrees + """ + return context.scene.tool_settings.snap_angle_increment + @classmethod def get_snap_points_on_raycasted_face(cls, context, event, obj, face_index): matrix = obj.matrix_world.copy() From cd95f46db5e77d22ad0173137996fb9f99118a67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Aliste?= Date: Tue, 10 Feb 2026 18:18:31 -0300 Subject: [PATCH 151/171] Use Blender's angle snap setting in tool/polyline.py Replace hardcoded 5-degree angle snapping with Blender's snap_angle_increment setting in calculate_distance_and_angle(). Co-Authored-By: Claude Opus 4.5 --- src/bonsai/bonsai/tool/polyline.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/tool/polyline.py b/src/bonsai/bonsai/tool/polyline.py index b288260d7d..5fbc909910 100644 --- a/src/bonsai/bonsai/tool/polyline.py +++ b/src/bonsai/bonsai/tool/polyline.py @@ -191,7 +191,8 @@ class Polyline(bonsai.core.tool.Polyline): orientation_angle = 0 if input_ui: if should_round: - angle = 5 * round(angle / 5) if distance < angle_round_threshold else angle + angle_snap = tool.Snap.get_angle_snap_value(context) + angle = angle_snap * round(angle / angle_snap) if distance < angle_round_threshold else angle factor = tool.Snap.get_increment_snap_value(context) distance = factor * round(distance / factor) input_ui.set_value("X", mouse_vector.x) From 067e04b56443a9bca3eb1e68fefc950d115e8b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Aliste?= Date: Tue, 10 Feb 2026 18:19:07 -0300 Subject: [PATCH 152/171] Use Blender's angle snap setting in model/polyline.py Replace hardcoded 5-degree angle snapping with Blender's snap_angle_increment setting in handle_lock_axis() for: - Initial angle rounding when locking axis (A key) - Angle rounding and increments on Shift+Wheel scroll Co-Authored-By: Claude Opus 4.5 --- src/bonsai/bonsai/bim/module/model/polyline.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/polyline.py b/src/bonsai/bonsai/bim/module/model/polyline.py index de169796f6..92ec36581b 100644 --- a/src/bonsai/bonsai/bim/module/model/polyline.py +++ b/src/bonsai/bonsai/bim/module/model/polyline.py @@ -211,22 +211,21 @@ class PolylineOperator: context.workspace.status_text_set(draw_instructions) def handle_lock_axis(self, context: bpy.types.Context, event: bpy.types.Event) -> None: + angle_snap = tool.Snap.get_angle_snap_value(context) if event.value == "PRESS" and event.type == "A": self.tool_state.lock_axis = False if self.tool_state.lock_axis else True if self.tool_state.lock_axis: self.tool_state.snap_angle = self.input_ui.get_number_value("WORLD_ANGLE") - # Round to the closest 5 - self.tool_state.snap_angle = round(self.tool_state.snap_angle / 5) * 5 + self.tool_state.snap_angle = round(self.tool_state.snap_angle / angle_snap) * angle_snap if event.shift and event.type in {"WHEELUPMOUSE", "WHEELDOWNMOUSE"}: self.tool_state.lock_axis = True self.tool_state.snap_angle = self.input_ui.get_number_value("WORLD_ANGLE") - # Round to the closest 5 - self.tool_state.snap_angle = round(self.tool_state.snap_angle / 5) * 5 + self.tool_state.snap_angle = round(self.tool_state.snap_angle / angle_snap) * angle_snap if event.type in {"WHEELUPMOUSE"}: - self.tool_state.snap_angle += 5 + self.tool_state.snap_angle += angle_snap else: - self.tool_state.snap_angle -= 5 + self.tool_state.snap_angle -= angle_snap self.handle_mouse_move(context, event) detected_snaps = tool.Snap.detect_snapping_points(context, event, self.objs_2d_bbox, self.tool_state) self.snapping_points = tool.Snap.select_snapping_points(context, event, self.tool_state, detected_snaps) From 740fcf77684909a1d560f93029d21616bc5a34fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Aliste?= Date: Tue, 10 Feb 2026 18:20:18 -0300 Subject: [PATCH 153/171] Use Blender's angle snap setting in wall.py and profile.py Replace hardcoded 5-degree angle snapping with Blender's snap_angle_increment setting in create_wall_from_2_points() and create_profile_from_2_points(). Co-Authored-By: Claude Opus 4.5 --- src/bonsai/bonsai/bim/module/model/profile.py | 6 +++--- src/bonsai/bonsai/bim/module/model/wall.py | 4 ++-- src/bonsai/bonsai/tool/snap.py | 6 +++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index 572898c484..4e16f9b296 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import copy -from math import atan2, degrees, pi +from math import atan2, degrees, pi, radians from typing import Any, Literal, Optional, Union import bmesh @@ -195,8 +195,8 @@ class DumbProfileGenerator: if should_round: # Round to nearest 50mm (yes, metric for now) self.length = 0.05 * round(length / 0.05) - # Round to nearest 5 degrees - nearest_degree = (pi / 180) * 5 + angle_snap = tool.Snap.get_angle_snap_value(bpy.context) + nearest_degree = radians(angle_snap) self.rotation = nearest_degree * round(self.rotation / nearest_degree) self.location = coords[0] data["obj"] = self.create_profile() diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index ba3d93586b..7f4579df31 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -916,8 +916,8 @@ class DumbWallGenerator: if should_round: # Round to nearest 50mm (yes, metric for now) self.length = 0.05 * round(length / 0.05) - # Round to nearest 5 degrees - nearest_degree = (math.pi / 180) * 5 + angle_snap = tool.Snap.get_angle_snap_value(bpy.context) + nearest_degree = math.radians(angle_snap) self.rotation = nearest_degree * round(self.rotation / nearest_degree) self.location = coords[0] data["obj"] = self.create_wall() diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index 7ee06cd44e..bc35505826 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -118,10 +118,14 @@ class Snap(bonsai.core.tool.Snap): def get_angle_snap_value(cls, context: bpy.types.Context) -> float: """Get the angle snap increment from Blender's tool settings. + Uses snap_angle_increment_3d (Blender 5.0+) or snap_angle_increment (Blender 4.x). + :param context: Blender context :return: Angle snap increment in degrees """ - return context.scene.tool_settings.snap_angle_increment + if bpy.app.version >= (5, 0, 0): + return math.degrees(context.scene.tool_settings.snap_angle_increment_3d) + return math.degrees(context.scene.tool_settings.snap_angle_increment) @classmethod def get_snap_points_on_raycasted_face(cls, context, event, obj, face_index): From 7b4889d2ec21dbb7c2aebb0a3d9d12e9e286b265 Mon Sep 17 00:00:00 2001 From: ssg3d <64012165+ssg3d@users.noreply.github.com> Date: Fri, 13 Feb 2026 13:26:25 +0800 Subject: [PATCH 154/171] Update IfcParse.cpp IfcOpenshell read file, and write file without changes. This round trip introduces truncation noise. It should not hurt to increase the precision to keep this clean. --- src/ifcparse/IfcParse.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index f0f880b7d6..95ab95c0db 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -746,7 +746,7 @@ namespace { static std::string format_double(const double& d) { std::ostringstream oss; oss.imbue(std::locale::classic()); - oss << std::setprecision(std::numeric_limits::digits10) << d; + oss << std::setprecision(std::numeric_limits::max_digits10) << d; const std::string str = oss.str(); oss.str(""); std::string::size_type e = str.find('e'); From 7978f1fb0887b67a93dc503dd30e73448d62b2c9 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 13 Feb 2026 10:17:28 +0100 Subject: [PATCH 155/171] Fix compilation on gcc #7666 --- src/svgfill/src/arrange_polygons.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/svgfill/src/arrange_polygons.cpp b/src/svgfill/src/arrange_polygons.cpp index 0271d76146..0e77a28886 100644 --- a/src/svgfill/src/arrange_polygons.cpp +++ b/src/svgfill/src/arrange_polygons.cpp @@ -1239,6 +1239,7 @@ void fuse_corridor_halves_with_input(Arrangement_2& arr, Graph2D& G, SegmentL } class timer { + public: class entry { public: entry(std::map::const_iterator start_it) @@ -1253,9 +1254,8 @@ class timer { std::map::const_iterator start_it; }; - public: entry start(const std::string& name) { - return timings_.insert({name, std::chrono::high_resolution_clock::now()}).first; + return entry(timings_.insert({name, std::chrono::high_resolution_clock::now()}).first); } private: From a88c5938dc7933461e2a9ccf5c4e763a351fbecd Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Sat, 14 Feb 2026 10:18:06 -0600 Subject: [PATCH 156/171] typos --- src/bonsai/bonsai/bim/ui.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index d224761609..32240a3fee 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -467,12 +467,12 @@ class DocPreferences(bpy.types.PropertyGroup): classes_to_wireframe: StringProperty( default="IfcVirtualElement", name="Classes to Wireframe", - description="Upon import, these classes will display as wireframe.\nEx: IfcVirtualelement, IfcSpace", + description="Upon import, these classes will display as wireframe.\nEx: IfcVirtualElement, IfcSpace", ) classes_no_cut: StringProperty( default="IfcVirtualElement, IfcSpace", name="Classes that are not cut", - description="The cut decoractor will be turned off for these classes\nEx: IfcVirtualelement, IfcSpace", + description="The cut decorator will be turned off for these classes\nEx: IfcVirtualElement, IfcSpace", ) if TYPE_CHECKING: From b246998f68c710e36d82247bd5133e19aa1851f5 Mon Sep 17 00:00:00 2001 From: falken10vdl <33285113+falken10vdl@users.noreply.github.com> Date: Sun, 15 Feb 2026 09:28:43 +0100 Subject: [PATCH 157/171] Linked IFC projects enhancement (multiple links to same project file) (#7607) * Linked IFC projects enhancement (multiple links to same project file) - Implement link management system using UUIDs as identifiers to support multiple links to the same IFC file - Add georeferencing compatibility detection and UI display (NONE, NOT_COMPATIBLE, PARTIAL_COMPATIBLE, FULL_COMPATIBLE) - Support for duplicate link creation with Shift+D shortcut and automatic position offset - Add false origin and project north calculation from 3D cursor for MANUAL mode - Only store one cache per file, regardless of the amount of links - Prevent duplicate links based on filepath and position comparison - Improve error handling for missing files and loading failures - Update tests * Remove duplicate georef UI I try to avoid duplicate UI (especially for one that can be as sophisticated as georef - e.g. missing is WCS) as it means double the code, double the tests, potential user confusion. BTW the note about vertical datum isn't quite accurate as it may be included in the CRS definition so vertical datum is optional. * Remove depsgraph_update_post handler for update_link_ui_on_transform as per core developer feedback * Move get_projected_crs to geolocation module * Refactor get_projected_crs to simplify as per core developer feedback * Remove unused import of bonsai.tool from project module * Use IfcDocumentInformation per linked file and IfcDocumentReference for locaiton information * Refactor SaveBlendMetadataFile operator to remove try-except blocks and remove linked projects collections since they are recreated by bonsai * Cleanup removing empty collection instances for linked models in metadata.blend file and call determine_georeferencing_compatibility on link reload * Add locking mechanism for linked models and update UI to reflect lock status * Update logic that track IFC to execute_ifc_duplicate_operator instead of having it in execute() which does not track IFC undo/redo * Refactor link handling to use get_link_empty_handle and set_link_empty_handle methods which in turn use the standard blender-ifc integrations patters (tool.Ifc.get_object(doc_reference) and tool.Ifc.link(doc_reference, empty_handle) * remove operator.DuplicateLink and move it to tool.Project.duplicate_link() * Refactor link handling to use sequential identifiers (no need for STEP ID DocRef) * Refactor IFC linking logic to handle cases without a parent IFC file loaded. Firts link flase origin becomes parent origin * Lock should not affect selection. This makes it consistent with grid / spatial lock, and also toggle selectability is already implemented. * Remove unnecessary check for loaded library as Blender seems to do this internally already * Rename util to get_crs because in IFC4X3 you can also have geographic CRS not just projected * Remove unnecessary call to determine_georeferencing_compatibility This function is already always called prior to calculate_link_position so shouldn't be called here. It's also a very expensive function: as it currently stands, just to link a single IFC, ifcopenshell.open() is called 3 times. This reduces it to 2. * Store CRS as metadata for linked models, and compare metadata when indicating georeferencing compatibility Previously, to check georeferencing compatibility, ifcopenshell.open() was used. When linking large models, this adds considerable time and memory usage. This instead captures the georef as standard metadata in our .cache.json. This now reduces the ifcopenshell.open() calls back down to only 1 as necessary (see previous commit). * Use link index instead of link name to fetch link collection item Link name runs into issues with name uniqueness. This is why you created a function for "get next link ID". After this refactoring, we can no longer worry about uniqueness and that function may be removed. * Simplify reloadlink into just unload and reload (with cache disabled) This function should not be responsible for editing any data. * Remove unnecessary get_next_link_id as names no longer need uniqueness This now frees up the name variable to track a more meaningful, human name like IfcDocumentInformation's Name attribute. * Rewrite get / set link_empty_handle to just use the link directly This prevents needless logic to fetch the link and also removes issues related to duplicate names. * Temporarily remove logic in prop callback Right now, pretty much all the logic is done in a prop callback. In general logic in prop callbacks should be minimised, since it's hard to test and easily triggered as a domino effect of another change, and may also impact undo/redo. * Remove code that unnecessarily removes cache This code removes cache, which means any project unlinking an IFC auto clears the cache for any other project which doesn't make sense, and also breaks the ability to readd it quickly. * Rewrite link, unlink, load, and unload IFC There were a few issues tackled here: - Operators that change any IFC data must use tool.Ifc.Operator and _execute, otherwise undo/redo will break. That's one of the risks of using prop callbacks, as it is not explicit when an IFC edit happens. - The usage of IfcDocumentReference was not correct. The Location should store the URL, _not_ the position. The position should be in the Identification attribute. - The URL was stored in IfcDocumentInformation location, which does not work in IFC2X3. There are a few changes here to make it IFC2X3 compatible. - Generally move logic in operators, not prop callback. * Remove restriction around manual mode. Users should be able to use manual mode if they want. * Restore AUTOMATIC mode to identical behaviour to file open This is the first step to reusing cache files agnostic of the host. * Revert tests for a fresh start for updating tests * Revert "test_feature - clean up .ifc.cache. files after test was executed" This reverts commit 99ae768ddf409e19c05d4ea1e44c9bdfd03702f9. * Update tests and reimplement calculations for matrix of empty handle Previously, the empty would always be placed at the origin, unless a "position" offset was present. This is a problem, because the "position" is simply a local offset relative to the Blender cache! If the cache was regenerated, the offsets would be outdated. Also, the cache appeared in different locations depending on the false origin mode, so the offset would mean different things to different people. Instead, a more robust method is: 1. When you link a file, a Blender cache is generated. The Blender origin of this cache is arbitrary! It depends on the user's false origin mode and is purely a Blender session specific thing. 2. When you load a link, a link is _always_ loaded into the correct location with regards to IFC global coordinates. All math is done from the perspective of IFC. 3. If you choose to transform (move / rotate / scale!?) this link from its correct location, that gets recorded as a 4x4 transformation matrix. Note: I haven't implemented this properly yet. Tests all pass, with a minor modification to the new behaviour that false origin mode now won't affect the location it ends up in, only the generation of the cache. * Remove arbitrary convention around display name Not needed anymore now that A/M/D is a detail and not significant on actual coordinates, and also that the UUID is no longer needed. * Simplify implementation of loading linked models when opening an IFC * Move link matrix calculation from operator to tool for reuse * Implement editing link location and calculation of transformation matrix I changed my mind on the is_locked thing, since it isn't clear to the user that locking need to be done to save changes. * Remove old is_locked, prop update callback no longer needed (dedicated operator instead), remove old calculation code * Simplify code related to placed_as_per_georef * For now, simple skip for duplicate / delete IMO duplicate / delete / move a link are very rare and explicit operations. * Update tests * Remove host_model coordinate data as cache is no longer host model dependent * Move icons outside list because there are too many * Minor tweaks --------- Co-authored-by: Dion Moult Co-authored-by: Dion Moult --- .gitignore | 2 + src/bonsai/bonsai/bim/export_ifc.py | 1 - .../bonsai/bim/module/drawing/operator.py | 4 +- src/bonsai/bonsai/bim/module/drawing/ui.py | 2 +- .../bonsai/bim/module/geometry/operator.py | 9 + .../bim/module/georeference/operator.py | 2 +- .../bonsai/bim/module/georeference/prop.py | 12 +- .../bonsai/bim/module/project/__init__.py | 9 +- .../bonsai/bim/module/project/operator.py | 367 ++++++++++++------ src/bonsai/bonsai/bim/module/project/prop.py | 46 ++- src/bonsai/bonsai/bim/module/project/ui.py | 93 +++-- src/bonsai/bonsai/bim/operator.py | 74 ++-- src/bonsai/bonsai/core/georeference.py | 4 +- src/bonsai/bonsai/tool/document.py | 8 + src/bonsai/bonsai/tool/georeference.py | 18 + src/bonsai/bonsai/tool/project.py | 125 +++--- src/bonsai/test/bim/feature/project.feature | 111 +++--- src/bonsai/test/bim/test_feature.py | 51 +-- src/bonsai/test/tool/test_project.py | 142 ++++--- .../ifcopenshell/util/geolocation.py | 11 +- 20 files changed, 641 insertions(+), 450 deletions(-) diff --git a/.gitignore b/.gitignore index bee04658cd..8a7482ab8e 100644 --- a/.gitignore +++ b/.gitignore @@ -82,6 +82,8 @@ src/bonsai/bonsai/translations.py # bonsai test temp files src/bonsai/test/files/temp +src/bonsai/test/files/basic.ifc.cache.blend +src/bonsai/test/files/basic.ifc.cache.sqlite # bonsai data src/bonsai/bonsai/bim/data/build/ diff --git a/src/bonsai/bonsai/bim/export_ifc.py b/src/bonsai/bonsai/bim/export_ifc.py index 7295c72e34..cfab523942 100644 --- a/src/bonsai/bonsai/bim/export_ifc.py +++ b/src/bonsai/bonsai/bim/export_ifc.py @@ -52,7 +52,6 @@ class IfcExporter: self.set_header() IfcStore.update_cache() self.sync_all_objects() - tool.Project.save_linked_models_to_ifc() extension = self.ifc_export_settings.output_file.split(".")[-1].lower() if extension == "ifczip": with tempfile.TemporaryDirectory() as unzipped_path: diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index d02e4c6c76..db389427e6 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -928,7 +928,7 @@ class CreateDrawing(bpy.types.Operator): props = tool.Project.get_project_props() for link in props.get_loaded_links_for_drawings(): - files[link.name] = self.get_linked_file(link) + files[link.filepath] = self.get_linked_file(link) target_view = ifcopenshell.util.element.get_psets(self.camera_element)["EPset_Drawing"]["TargetView"] self.setup_serialiser(target_view) @@ -1374,7 +1374,7 @@ class CreateDrawing(bpy.types.Operator): return True def get_linked_file(self, link: "Link") -> ifcopenshell.file: - link_path = link.name + link_path = link.filepath ifc_file = IfcStore.session_files.get(link_path, None) if ifc_file is not None: return ifc_file diff --git a/src/bonsai/bonsai/bim/module/drawing/ui.py b/src/bonsai/bonsai/bim/module/drawing/ui.py index 556459b8b6..dc98715686 100644 --- a/src/bonsai/bonsai/bim/module/drawing/ui.py +++ b/src/bonsai/bonsai/bim/module/drawing/ui.py @@ -89,7 +89,7 @@ class BIM_PT_camera(Panel): for link in links: row = panel.row(align=True) split = row.split(factor=0.9) - split.label(text=link.name, icon="FILE") + split.label(text=link.filepath, icon="FILE") split.prop(link, "include_in_drawings", text="") else: panel.label(text="No IFC projects linked and loaded.") diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index fbd694d219..7937acca30 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -902,6 +902,7 @@ class OverrideDelete(bpy.types.Operator): if not is_valid_data_block: continue + element = tool.Ifc.get_entity(obj) if element: if tool.Geometry.is_locked(element): @@ -912,6 +913,9 @@ class OverrideDelete(bpy.types.Operator): if ifcopenshell.util.element.get_pset(element, "BBIM_Array"): self.report({"INFO"}, "Elements that are part of an array cannot be deleted.") continue + if element.is_a("IfcDocumentReference"): + self.report({"INFO"}, "Linked models cannot be deleted.") + continue if element.is_a("IfcGridAxis"): # Deleting the last W axis is OK if ((grid := element.PartOfU) and len(grid[0].UAxes) == 1) or ( @@ -1208,6 +1212,11 @@ class OverrideDuplicateMove(bpy.types.Operator): operator.report({"ERROR"}, f"Drawing '{obj.name}' not duplicated.") continue + if element.is_a("IfcDocumentReference"): + objects_to_remove.add(obj) + operator.report({"ERROR"}, f"Linked model '{obj.name}' not duplicated.") + continue + if tool.Geometry.is_locked(element): objects_to_remove.add(obj) operator.report({"ERROR"}, lock_error_message(obj.name)) diff --git a/src/bonsai/bonsai/bim/module/georeference/operator.py b/src/bonsai/bonsai/bim/module/georeference/operator.py index 6c82e6684c..c2af3d9225 100644 --- a/src/bonsai/bonsai/bim/module/georeference/operator.py +++ b/src/bonsai/bonsai/bim/module/georeference/operator.py @@ -51,7 +51,7 @@ class RemoveGeoreferencing(bpy.types.Operator, tool.Ifc.Operator): bl_description = "Remove the georeferencing" def _execute(self, context): - core.remove_georeferencing(tool.Ifc) + core.remove_georeferencing(tool.Ifc, tool.Georeference) class EditGeoreferencing(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/georeference/prop.py b/src/bonsai/bonsai/bim/module/georeference/prop.py index 5a1a37f06f..1f4ca321ac 100644 --- a/src/bonsai/bonsai/bim/module/georeference/prop.py +++ b/src/bonsai/bonsai/bim/module/georeference/prop.py @@ -224,16 +224,12 @@ class BIMGeoreferenceProperties(PropertyGroup): x_axis_ordinate: StringProperty(name="X Axis Ordinate", update=update_grid_north_vector) x_axis_is_null: BoolProperty(name="X Axis Is Null") - # These are only for reference to capture data about a host model from a linked model - # If you relink a model from a new host origin, we can autodetect it in theory with this - host_model_origin: StringProperty(name="Host Model Origin") - host_model_origin_si: StringProperty(name="Host Model Origin SI") - host_model_project_north: StringProperty(name="Host Model Angle to Grid North") - # This is the ENH in project units and SI units of the Blender session's 0,0,0. # These are only for reference, using tool.Georeference.set_model_origin on # project load, project create, and when linking for the first time from an # empty Blender session. + model_is_georeferenced: BoolProperty(name="Model Is Georeferenced") + model_crs: StringProperty(name="Model CRS") model_origin: StringProperty(name="Model Origin") model_origin_si: StringProperty(name="Model Origin SI") model_project_north: StringProperty(name="Model Angle to Grid North") @@ -275,10 +271,6 @@ class BIMGeoreferenceProperties(PropertyGroup): x_axis_ordinate: str x_axis_is_null: bool - host_model_origin: str - host_model_origin_si: str - host_model_project_north: str - model_origin: str model_origin_si: str model_project_north: str diff --git a/src/bonsai/bonsai/bim/module/project/__init__.py b/src/bonsai/bonsai/bim/module/project/__init__.py index 53ebaff14e..f4f4261eb5 100644 --- a/src/bonsai/bonsai/bim/module/project/__init__.py +++ b/src/bonsai/bonsai/bim/module/project/__init__.py @@ -31,27 +31,31 @@ classes = ( operator.BIM_OT_load_clipping_planes, operator.BIM_OT_save_clipping_planes, operator.ChangeLibraryElement, + operator.ClearMeasurement, operator.ClearRecentIFCProjects, operator.CreateClippingPlane, operator.CreateProject, operator.DisableCulling, operator.DisableEditingHeader, + operator.DisableEditingLink, operator.EditHeader, + operator.EditLink, operator.EditProjectLibrary, operator.EnableCulling, operator.EnableEditingHeader, + operator.EnableEditingLink, operator.ExportIFC, operator.FlipClippingPlane, operator.IFCFileHandlerOperator, operator.ImageScalingTool, operator.LinkIfc, + operator.LoadBlendMetadataAndIFC, operator.LoadLink, operator.LoadLinkedProject, operator.LoadProject, operator.LoadProjectElements, - operator.MeasureTool, operator.MeasureFaceAreaTool, - operator.ClearMeasurement, + operator.MeasureTool, operator.NewProject, operator.QueryLinkedElement, operator.RefreshClippingPlanes, @@ -69,7 +73,6 @@ classes = ( operator.UnassignLibraryDeclaration, operator.UnlinkIfc, operator.UnloadLink, - operator.LoadBlendMetadataAndIFC, workspace.ExploreHotkey, prop.LibraryBreadcrumb, prop.LibraryElement, diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index b6f63f13ca..e4e57275ba 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -18,6 +18,7 @@ import datetime import json +import math import logging import os import subprocess @@ -59,6 +60,15 @@ import bonsai.core.project as core import bonsai.tool as tool from bonsai.bim import export_ifc, import_ifc from bonsai.bim.ifc import IfcStore +from bonsai.bim.ui import IFCFileSelector +from bonsai.bim import import_ifc +from bonsai.bim import export_ifc +from math import radians, degrees +from pathlib import Path +from collections import defaultdict +from mathutils import Vector, Matrix +from bpy.app.handlers import persistent +from ifcopenshell.geom import ShapeElementType from bonsai.bim.module.model.decorator import FaceAreaDecorator, PolylineDecorator from bonsai.bim.module.model.polyline import PolylineOperator from bonsai.bim.module.project.data import LinksData, ProjectLibraryData @@ -1321,7 +1331,7 @@ class ToggleFilterCategories(bpy.types.Operator): return {"FINISHED"} -class LinkIfc(bpy.types.Operator, ImportHelper): +class LinkIfc(bpy.types.Operator, ImportHelper, tool.Ifc.Operator): bl_idname = "bim.link_ifc" bl_label = "Link IFC" bl_options = {"REGISTER", "UNDO"} @@ -1360,134 +1370,148 @@ class LinkIfc(bpy.types.Operator, ImportHelper): row = self.layout.row() row.prop(pprops, "project_north") - def execute(self, context): + def invoke(self, context, event): + pprops = tool.Project.get_project_props() + + # Populate false origin and project north from 3D cursor for user convenience + cursor = context.scene.cursor + cursor_loc = cursor.location + cursor_rot = cursor.rotation_euler + angle = -cursor_rot.z + + # Calculate false origin based on the provided formulas + # x = -3Dcursor.x * cos(angle) - 3Dcursor.y * sin(angle) + # y = 3Dcursor.x * sin(angle) - 3Dcursor.y * cos(angle) + # z = -3Dcursor.z + false_origin_x = -cursor_loc.x * math.cos(angle) - cursor_loc.y * math.sin(angle) + false_origin_y = cursor_loc.x * math.sin(angle) - cursor_loc.y * math.cos(angle) + false_origin_z = -cursor_loc.z + + # Set the false_origin value + pprops.false_origin = f"{false_origin_x:.3f},{false_origin_y:.3f},{false_origin_z:.3f}" + pprops.project_north = str(round(math.degrees(angle), 1)) + + return super().invoke(context, event) + + def _execute(self, context): start = time.time() files = [f.name for f in self.files] if self.files else [self.filepath] + + if not files or all(not f or not f.strip() for f in files): + self.report({"ERROR"}, "No file selected") + return {"CANCELLED"} + + existing_links = tool.Project.get_linked_models_documents() if tool.Ifc.get() else {} for filename in files: + if not filename or not filename.strip(): + continue filepath = Path(self.directory) / filename if bpy.data.filepath and filepath.samefile(bpy.data.filepath): self.report({"INFO"}, "Can't link the current .blend file") continue props = tool.Project.get_project_props() - new = props.links.add() filepath = tool.Ifc.get_uri(filepath, use_relative_path=self.use_relative_path) + + new = props.links.add() + if tool.Ifc.get(): + if not (document := existing_links.get(filepath)): + document = ifcopenshell.api.document.add_information(tool.Ifc.get()) + document.Name = Path(filepath).name + document.Scope = "LINKED_MODEL" + reference = ifcopenshell.api.document.add_reference(tool.Ifc.get(), information=document) + reference[1] = ",".join([str(o) for o in np.eye(4).flatten().tolist()]) + reference.Location = filepath.replace("\\", "/") + new.ifc_definition_id = reference.id() new.name = filepath - status = bpy.ops.bim.load_link(filepath=filepath, use_cache=self.use_cache) - if status == {"CANCELLED"}: - error_msg = ( - f'Error processing IFC file "{filepath}" ' - "was critical and blend file either wasn't saved or wasn't updated. " - "See logs above in system console for details." - ) - print(error_msg) - self.report({"ERROR"}, error_msg) - return {"FINISHED"} - print(f"Finished linking {len(files)} IFCs", time.time() - start) - return {"FINISHED"} + new.filepath = filepath + bpy.ops.bim.load_link(link_index=-1, use_cache=self.use_cache) -class UnlinkIfc(bpy.types.Operator): +class UnlinkIfc(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.unlink_ifc" bl_label = "Unlink IFC" bl_options = {"REGISTER", "UNDO"} bl_description = "Remove the selected file from the link list" - filepath: bpy.props.StringProperty() + link_index: bpy.props.IntProperty(name="Link Index") - def execute(self, context): - filepath = Path(self.filepath).as_posix() - bpy.ops.bim.unload_link(filepath=filepath) + def _execute(self, context): props = tool.Project.get_project_props() - index = props.links.find(filepath) - if index != -1: - props.links.remove(index) - return {"FINISHED"} + link = props.links[self.link_index] + bpy.ops.bim.unload_link(link_index=self.link_index) + if tool.Ifc.get(): + reference = tool.Ifc.get().by_id(link.ifc_definition_id) + document = tool.Document.get_reference_document(reference) + ifcopenshell.api.document.remove_reference(tool.Ifc.get(), reference) + if document and not tool.Document.get_document_references(document): + ifcopenshell.api.document.remove_information(tool.Ifc.get(), document) + props.links.remove(self.link_index) -class UnloadLink(bpy.types.Operator): +class UnloadLink(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.unload_link" bl_label = "Unload Link" bl_options = {"REGISTER", "UNDO"} bl_description = "Unload the selected linked file" - filepath: bpy.props.StringProperty() + link_index: bpy.props.IntProperty(name="Link Index") - def execute(self, context): - filepath = tool.Blender.ensure_blender_path_is_abs(Path(self.filepath)) - if filepath.suffix.lower() == ".ifc": - filepath = filepath.with_suffix(".ifc.cache.blend") - - for library in list(bpy.data.libraries): - if tool.Blender.ensure_blender_path_is_abs(Path(library.filepath)) == filepath: + def _execute(self, context): + link = tool.Project.get_project_props().links[self.link_index] + if obj := tool.Project.get_link_empty_handle(link): + collection = obj.instance_collection + library = collection.library + tool.Ifc.unlink(obj=obj) + bpy.data.objects.remove(obj) + if collection.users == 0: + bpy.data.collections.remove(collection) + if not len([c for c in bpy.data.collections if c.library == library]): bpy.data.libraries.remove(library) - - props = tool.Project.get_project_props() - links = props.links - link = links[self.filepath] - # Let's assume that user might delete it. - if empty_handle := link.empty_handle: - bpy.data.objects.remove(empty_handle) - - # following lines removes the library also when use_relative_path=True, otherwise it doesn't - libraries = bpy.data.libraries - for library in libraries: - if library.name == self.filepath + ".cache.blend": - bpy.data.libraries.remove(library) - link.is_loaded = False - - if not any([l.is_loaded for l in links]): - ProjectDecorator.uninstall() - # we make sure we don't draw queried object from the file that was just unlinked - elif queried_obj := props.queried_obj: - queried_filepath = Path(queried_obj["ifc_filepath"]) - if queried_filepath == filepath: - ProjectDecorator.uninstall() - - return {"FINISHED"} + ProjectDecorator.uninstall() -class LoadLink(bpy.types.Operator): +class LoadLink(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.load_link" bl_label = "Load Link" bl_options = {"REGISTER", "UNDO"} bl_description = "Load the selected file" - filepath: bpy.props.StringProperty(name="Link Filepath") + link_index: bpy.props.IntProperty(name="Link Index") use_cache: bpy.props.BoolProperty(name="Use Cache", default=True) - filepath_: Path - - def execute(self, context): - filepath = Path(tool.Ifc.resolve_uri(self.filepath)) + def _execute(self, context): + self.link = tool.Project.get_project_props().links[self.link_index] + filepath = Path(tool.Ifc.resolve_uri(self.link.filepath)) if not filepath.exists(): self.report({"ERROR"}, f"File does not exist: '{filepath}'") return {"CANCELLED"} self.filepath_ = filepath - if filepath.suffix.lower().endswith(".blend"): - self.link_blend(filepath) - elif filepath.suffix.lower().endswith(".ifc"): - status = self.link_ifc() - if status: - return status - return {"FINISHED"} + if filepath.suffix.lower().endswith(".ifc"): + return self.link_ifc() def link_blend(self, filepath: Path) -> None: with bpy.data.libraries.load(str(filepath), link=True) as (data_from, data_to): - data_to.scenes = data_from.scenes - link = tool.Project.get_project_props().links[self.filepath] - for scene in bpy.data.scenes: - if not scene.library or Path(scene.library.filepath) != filepath: + data_to.collections = [c for c in data_from.collections if "IfcProject" in c] + + # Find the linked collection + for collection in bpy.data.collections: + if not collection.library or Path(collection.library.filepath) != filepath: continue - for child in scene.collection.children: - if "IfcProject" not in child.name: - continue - empty = bpy.data.objects.new(child.name, None) - empty.instance_type = "COLLECTION" - empty.instance_collection = child - link.empty_handle = empty - bpy.context.scene.collection.objects.link(empty) - break + # Create unique empty instance for this link + empty_name = collection.name + empty = bpy.data.objects.new(empty_name, None) + empty.instance_type = "COLLECTION" + empty.instance_collection = collection + empty.matrix_world = Matrix(tool.Project.calculate_link_matrix(self.link)) + + tool.Project.set_link_empty_handle(self.link, empty) + bpy.context.scene.collection.objects.link(empty) + self.link.is_loaded = True + if tool.Ifc.get(): # For non-IFC projects, locking has no meaning + tool.Geometry.lock_object(empty) + tool.Blender.select_and_activate_single_object(bpy.context, empty) break - link.is_loaded = True - tool.Blender.select_and_activate_single_object(bpy.context, empty) + else: + print(f"WARNING: No IfcProject collection found in {filepath}") + self.link.is_loaded = False def link_ifc(self) -> Union[set[str], None]: blend_filepath = self.filepath_.with_suffix(".ifc.cache.blend") @@ -1502,14 +1526,12 @@ class LoadLink(bpy.types.Operator): code = f""" import bpy +import sys def run(): import bonsai.tool as tool gprops = tool.Georeference.get_georeference_props() # Our model origin becomes their host model origin - gprops.host_model_origin = "{gprops.model_origin}" - gprops.host_model_origin_si = "{gprops.model_origin_si}" - gprops.host_model_project_north = "{gprops.model_project_north}" gprops.has_blender_offset = {gprops.has_blender_offset} gprops.blender_offset_x = "{gprops.blender_offset_x}" gprops.blender_offset_y = "{gprops.blender_offset_y}" @@ -1522,7 +1544,12 @@ def run(): pprops.false_origin = "{pprops.false_origin}" pprops.project_north = "{pprops.project_north}" # Use absolute path to be safe from cwd changes. - bpy.ops.bim.load_linked_project(filepath=r"{str(self.filepath_)}") + try: + bpy.ops.bim.load_linked_project(filepath=r"{str(self.filepath_)}") + except RuntimeError as e: + # Operator failed (returned CANCELLED with error report) + print(f"Failed to load linked project: {{e}}") + sys.exit(1) # Use str instead of as_posix to avoid issues with Windows shared paths. bpy.ops.wm.save_as_mainfile(filepath=r"{str(blend_filepath)}") @@ -1556,14 +1583,17 @@ except Exception as e: if not blend_filepath.exists() or blend_filepath.stat().st_mtime < t: return {"CANCELLED"} - self.set_model_origin_from_link() - + self.set_model_origin_from_link() + self.set_georeferencing_indicator() self.link_blend(blend_filepath) def set_model_origin_from_link(self) -> None: if tool.Ifc.get(): return # The current model's coordinates always take priority. + if len(tool.Project.get_project_props().links) > 1: + return # Only the first link sets the origin + json_filepath = self.filepath_.with_suffix(".ifc.cache.json") if not json_filepath.exists(): return @@ -1576,21 +1606,36 @@ except Exception as e: if (value := data.get(prop, None)) is not None: setattr(gprops, prop, value) + def set_georeferencing_indicator(self) -> None: + if not tool.Ifc.get(): + self.link.georeferenced = "NONE" + return + if not (crs_name := (ifcopenshell.util.geolocation.get_crs(tool.Ifc.get()) or {}).get("Name", "")): + self.link.georeferenced = "NONE" + return + reference = tool.Ifc.get().by_id(self.link.ifc_definition_id) + json_filepath = Path(reference.Location).with_suffix(".ifc.cache.json") + if not json_filepath.exists(): + self.link.georeferenced = "NONE" + return + with open(json_filepath, "r") as f: + data = json.load(f) + if not data["model_is_georeferenced"]: + self.link.georeferenced = "NONE" + else: + self.link.georeferenced = "FULL_COMPATIBLE" if crs_name == data["model_crs"] else "NOT_COMPATIBLE" + class ReloadLink(bpy.types.Operator): bl_idname = "bim.reload_link" bl_label = "Reload Link" bl_options = {"REGISTER", "UNDO"} bl_description = "Reload the selected file" - filepath: bpy.props.StringProperty() + link_index: bpy.props.IntProperty(name="Link Index") def execute(self, context): - is_abs = os.path.isabs(Path(self.filepath)) - use_relative_path = not is_abs - bpy.ops.bim.unlink_ifc(filepath=self.filepath) - filepath = tool.Ifc.resolve_uri(self.filepath) - status = bpy.ops.bim.link_ifc(filepath=filepath, use_cache=False, use_relative_path=use_relative_path) - return {"FINISHED"} + bpy.ops.bim.unload_link(link_index=self.link_index) + return bpy.ops.bim.load_link(link_index=self.link_index, use_cache=False) or {"FINISHED"} class ToggleLinkSelectability(bpy.types.Operator): @@ -1598,16 +1643,18 @@ class ToggleLinkSelectability(bpy.types.Operator): bl_label = "Toggle Link Selectability" bl_options = {"REGISTER", "UNDO"} bl_description = "Toggle selectability" - link: bpy.props.StringProperty(name="Linked IFC Filepath") + link_index: bpy.props.IntProperty(name="Link Index") def execute(self, context): props = tool.Project.get_project_props() - link = props.links[self.link] - self.library_filepath = tool.Blender.ensure_blender_path_is_abs(Path(self.link).with_suffix(".ifc.cache.blend")) + link = props.links[self.link_index] + self.library_filepath = tool.Blender.ensure_blender_path_is_abs( + Path(link.filepath).with_suffix(".ifc.cache.blend") + ) link.is_selectable = (is_selectable := not link.is_selectable) for collection in self.get_linked_collections(): collection.hide_select = not is_selectable - if handle := link.empty_handle: + if handle := tool.Project.get_link_empty_handle(link): handle.hide_select = not is_selectable return {"FINISHED"} @@ -1624,13 +1671,15 @@ class ToggleLinkVisibility(bpy.types.Operator): bl_label = "Toggle Link Visibility" bl_options = {"REGISTER", "UNDO"} bl_description = "Toggle visibility between SOLID and WIREFRAME" - link: bpy.props.StringProperty(name="Linked IFC Filepath") + link_index: bpy.props.IntProperty(name="Link Index") mode: bpy.props.EnumProperty(name="Visibility Mode", items=((i, i, "") for i in ("WIREFRAME", "VISIBLE"))) def execute(self, context): props = tool.Project.get_project_props() - link = props.links[self.link] - self.library_filepath = tool.Blender.ensure_blender_path_is_abs(Path(self.link).with_suffix(".ifc.cache.blend")) + link = props.links[self.link_index] + self.library_filepath = tool.Blender.ensure_blender_path_is_abs( + Path(link.filepath).with_suffix(".ifc.cache.blend") + ) if self.mode == "WIREFRAME": self.toggle_wireframe(link) elif self.mode == "VISIBLE": @@ -1652,7 +1701,7 @@ class ToggleLinkVisibility(bpy.types.Operator): layer_collections = tool.Blender.get_layer_collections_mapping(linked_collections) for layer_collection in layer_collections.values(): layer_collection.exclude = is_hidden - if handle := link.empty_handle: + if handle := tool.Project.get_link_empty_handle(link): handle.hide_set(is_hidden) def get_linked_collections(self) -> list[bpy.types.Collection]: @@ -1663,17 +1712,95 @@ class ToggleLinkVisibility(bpy.types.Operator): ] +class EnableEditingLink(bpy.types.Operator): + bl_idname = "bim.enable_editing_link" + bl_label = "Enable Editing Link" + bl_options = {"REGISTER", "UNDO"} + bl_description = "Enable editing link location" + + def execute(self, context): + link = tool.Project.get_project_props().active_link + link.is_editing = True + tool.Geometry.unlock_object(tool.Project.get_link_empty_handle(link)) + return {"FINISHED"} + + +class DisableEditingLink(bpy.types.Operator): + bl_idname = "bim.disable_editing_link" + bl_label = "Disable Editing Link" + bl_options = {"REGISTER", "UNDO"} + bl_description = "Disable editing link and restore to previously saved location" + + def execute(self, context): + link = tool.Project.get_project_props().active_link + link.is_editing = False + obj = tool.Project.get_link_empty_handle(link) + obj.matrix_world = Matrix(tool.Project.calculate_link_matrix(link)) + tool.Geometry.lock_object(obj) + return {"FINISHED"} + + +class EditLink(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.edit_link" + bl_label = "Edit Link" + bl_options = {"REGISTER", "UNDO"} + bl_description = "Disable editing link and restore to previously saved location" + + def _execute(self, context): + link = tool.Project.get_project_props().active_link + link.is_editing = False + obj = tool.Project.get_link_empty_handle(link) + new_obj_matrix = obj.matrix_world + + filepath = Path(tool.Ifc.resolve_uri(link.filepath)) + with open(filepath.with_suffix(".ifc.cache.json"), "r") as f: + metadata = json.load(f) + + rot = ifcopenshell.util.shape_builder.np_rotation_matrix( + radians(-float(metadata["model_project_north"])), 4, "Z" + ) + global_matrix = rot @ np.eye(4) + global_matrix[:, 3][:3] = [float(o) for o in metadata["model_origin_si"].split(",")] + + gprops = tool.Georeference.get_georeference_props() + rot = ifcopenshell.util.shape_builder.np_rotation_matrix(radians(-float(gprops.model_project_north)), 4, "Z") + local_matrix = rot @ np.eye(4) + local_matrix[:, 3][:3] = [float(o) for o in gprops.model_origin_si.split(",")] + + # obj_matrix is typically calculated as: + # obj_matrix = np.linalg.inv(local_matrix) @ transformation @ global_matrix + # So let's calculate the transformation + + transformed_global_matrix = local_matrix @ np.array(new_obj_matrix) + transformation = transformed_global_matrix @ np.linalg.inv(global_matrix) + if np.allclose(transformation, np.eye(4)): + link.has_transformation = True + transformation = ",".join(map(str, np.eye(4).reshape(-1))) + else: + link.has_transformation = False + transformation = ",".join(map(str, transformation.reshape(-1))) + + if tool.Ifc.get(): + reference = tool.Ifc.get().by_id(link.ifc_definition_id) + reference[1] = transformation + else: + link.transformation = transformation + + obj.matrix_world = Matrix(tool.Project.calculate_link_matrix(link)) + tool.Geometry.lock_object(obj) + + class SelectLinkHandle(bpy.types.Operator): bl_idname = "bim.select_link_handle" bl_label = "Select Link Handle" bl_options = {"REGISTER", "UNDO"} bl_description = "Select link empty object handle" - index: bpy.props.IntProperty(name="Link Index") + link_index: bpy.props.IntProperty(name="Link Index") def execute(self, context): props = tool.Project.get_project_props() - link = props.links[self.index] - handle = link.empty_handle + link = props.links[self.link_index] + handle = tool.Project.get_link_empty_handle(link) if not handle: self.report({"ERROR"}, "Link has no empty handle (probably it was deleted).") return {"CANCELLED"} @@ -1866,7 +1993,14 @@ class LoadLinkedProject(bpy.types.Operator, ImportHelper): print("Processing", self.filepath) self.collection = bpy.data.collections.new("IfcProject/" + os.path.basename(self.filepath)) - self.file = ifcopenshell.open(self.filepath) + + try: + self.file = ifcopenshell.open(self.filepath) + except Exception as e: + self.report({"ERROR"}, f"Failed to open IFC file: {str(e)}") + bpy.data.collections.remove(self.collection) + return {"CANCELLED"} + tool.Ifc.set(self.file) print("Finished opening") @@ -1897,20 +2031,13 @@ class LoadLinkedProject(bpy.types.Operator, ImportHelper): if tool.Loader.settings.false_origin_mode == "MANUAL" and tool.Loader.settings.false_origin: tool.Loader.set_manual_blender_offset(self.file) elif tool.Loader.settings.false_origin_mode == "AUTOMATIC": - if host_model_origin_si := gprops.host_model_origin_si: - host_model_origin_si = [float(o) / self.unit_scale for o in host_model_origin_si.split(",")] - tool.Loader.settings.false_origin = host_model_origin_si - tool.Loader.settings.project_north = float(gprops.host_model_project_north) - tool.Loader.set_manual_blender_offset(self.file) - else: - tool.Loader.guess_false_origin(self.file) + tool.Loader.guess_false_origin(self.file) tool.Georeference.set_model_origin() self.json_filepath = self.filepath + ".cache.json" data = { - "host_model_origin": gprops.host_model_origin, - "host_model_origin_si": gprops.host_model_origin_si, - "host_model_project_north": gprops.host_model_project_north, + "model_is_georeferenced": gprops.model_is_georeferenced, + "model_crs": gprops.model_crs, "model_origin": gprops.model_origin, "model_origin_si": gprops.model_origin_si, "model_project_north": gprops.model_project_north, diff --git a/src/bonsai/bonsai/bim/module/project/prop.py b/src/bonsai/bonsai/bim/module/project/prop.py index 08859af1f9..a34b5726f7 100644 --- a/src/bonsai/bonsai/bim/module/project/prop.py +++ b/src/bonsai/bonsai/bim/module/project/prop.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os +import math from collections.abc import Generator +from pathlib import Path from typing import TYPE_CHECKING, Literal, Union, assert_never, get_args import bpy @@ -219,29 +220,62 @@ class FilterCategory(PropertyGroup): class Link(PropertyGroup): - name: StringProperty( - name="Name", + name: StringProperty(name="Name") + filepath: StringProperty( + name="Filepath", description="Filepath to linked .ifc file, stored in posix format (could be relative to .ifc file, not to .blend)", ) + transformation: StringProperty( + name="Transformation", + description="4x4 matrix transformation as a flattened comma separated list for the linked model", + default="", + ) + georeferenced: EnumProperty( + name="Georeferenced", + description="Georeferencing status: compatibility between host and linked model", + items=[ + ("NONE", "No Georef", "Linked model has no georeferencing"), + ("NOT_COMPATIBLE", "Not Compatible", "Has geo data but CRS differ from host"), + ("FULL_COMPATIBLE", "Full Compatible", "Both CRS name and vertical datum match host"), + ], + default="NONE", + ) + has_transformation: BoolProperty( + name="Has Transformation", + description="Whether there is a transformation from its global coordinates", + default=False, + ) is_loaded: BoolProperty(name="Is Loaded", default=False) + is_editing: BoolProperty(name="Is Editing", description="Whether the link is being transformed", default=False) is_selectable: BoolProperty(name="Is Selectable", default=True) is_wireframe: BoolProperty(name="Is Wireframe", default=False) is_hidden: BoolProperty(name="Is Hidden", default=False) include_in_drawings: BoolProperty(name="Include in Drawings", default=True, options=set()) empty_handle: PointerProperty( name="Empty Object Handle", - description="We use empty object handle to allow simple manipulations with a linked model (moving, scaling, rotating)", + description="Storage for empty handle. Used in non-IFC scenarios or temporarily during link creation", type=bpy.types.Object, ) + ifc_definition_id: IntProperty( + name="IFC Definition ID", + description="STEP ID of the IfcDocumentReference when linked to a parent IFC project. Zero when no parent IFC exists", + default=0, + ) if TYPE_CHECKING: name: str + filepath: str + transformation: str + georeferenced: Literal["NONE", "NOT_COMPATIBLE", "FULL_COMPATIBLE"] + has_transformation: bool is_loaded: bool + is_editing: bool is_selectable: bool is_wireframe: bool is_hidden: bool include_in_drawings: bool empty_handle: Union[bpy.types.Object, None] + ifc_definition_id: int class EditedObj(PropertyGroup): @@ -424,6 +458,10 @@ class BIMProjectProperties(PropertyGroup): clipping_planes_active_index: bpy.props.IntProperty(min=0, default=0, max=5) edited_objs: bpy.props.CollectionProperty(type=EditedObj) + @property + def active_link(self) -> Union[Link, None]: + return tool.Blender.get_active_uilist_element(self.links, self.active_link_index) + @property def active_clipping_plane(self) -> ObjProperty | None: return tool.Blender.get_active_uilist_element(self.clipping_planes, self.clipping_planes_active_index) diff --git a/src/bonsai/bonsai/bim/module/project/ui.py b/src/bonsai/bonsai/bim/module/project/ui.py index 79ed2c7d7a..3d02e6ca05 100644 --- a/src/bonsai/bonsai/bim/module/project/ui.py +++ b/src/bonsai/bonsai/bim/module/project/ui.py @@ -22,6 +22,7 @@ import os from typing import TYPE_CHECKING import bpy +import math import ifcopenshell from bpy.types import Menu, Panel, UIList @@ -30,6 +31,7 @@ import bonsai.tool as tool from bonsai.bim.helper import draw_attributes, prop_with_search from bonsai.bim.ifc import IfcStore from bonsai.bim.module.project.data import LinksData, ProjectData +from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.project.prop import ( @@ -477,17 +479,27 @@ class BIM_PT_links(Panel): def draw(self, context): self.props = tool.Project.get_project_props() + row = self.layout.row(align=True) row.operator("bim.link_ifc") if self.props.links: - self.layout.template_list( - "BIM_UL_links", - "", - self.props, - "links", - self.props, - "active_link_index", - ) + if self.props.active_link: + row = self.layout.row(align=True) + row.alignment = "RIGHT" + index = self.props.active_link_index + if self.props.active_link.is_editing: + row.operator("bim.edit_link", text="", icon="CHECKMARK") + row.operator("bim.disable_editing_link", text="", icon="CANCEL") + else: + row.operator("bim.enable_editing_link", text="", icon="GREASEPENCIL") + if self.props.active_link.is_loaded: + row.operator("bim.select_link_handle", text="", icon="OBJECT_DATA").link_index = index + row.operator("bim.unload_link", text="", icon="UNLINKED").link_index = index + row.operator("bim.reload_link", text="", icon="FILE_REFRESH").link_index = index + else: + row.operator("bim.load_link", text="", icon="LINKED").link_index = index + row.operator("bim.unlink_ifc", text="", icon="X").link_index = index + self.layout.template_list("BIM_UL_links", "", self.props, "links", self.props, "active_link_index") if LinksData.enable_culling: row = self.layout.row(align=True) @@ -607,47 +619,30 @@ class BIM_UL_links(UIList): active_propname, index, ): - if item: - row = layout.row(align=True) - if item.is_loaded: - row.label(text=item.name) - op = row.operator( - "bim.toggle_link_selectability", - text="", - icon="RESTRICT_SELECT_OFF" if item.is_selectable else "RESTRICT_SELECT_ON", - emboss=False, - ) - op.link = item.name - op = row.operator( - "bim.toggle_link_visibility", - text="", - icon="CUBE" if item.is_wireframe else "MESH_CUBE", - emboss=False, - ) - op.link = item.name - op.mode = "WIREFRAME" - op = row.operator( - "bim.toggle_link_visibility", - text="", - icon="HIDE_ON" if item.is_hidden else "HIDE_OFF", - emboss=False, - ) - op.link = item.name - op.mode = "VISIBLE" - op = row.operator("bim.select_link_handle", text="", icon="OBJECT_DATA") - op.index = index - op = row.operator("bim.unload_link", text="", icon="UNLINKED") - op.filepath = item.name - op = row.operator("bim.reload_link", text="", icon="FILE_REFRESH") - op.filepath = item.name - else: - row.prop(item, "name", text="") - op = row.operator("bim.select_uri_attribute", text="", icon="FILE_FOLDER") - op.attribute_data_path = tool.Blender.get_full_data_path(item, "name") - op = row.operator("bim.load_link", text="", icon="LINKED") - op.filepath = item.name - op = row.operator("bim.unlink_ifc", text="", icon="X") - op.filepath = item.name + row = layout.row(align=True) + if item.is_loaded: + if item.georeferenced == "NONE": + row.label(text="", icon="QUESTION") + elif item.georeferenced == "NOT_COMPATIBLE": + row.label(text="", icon="ERROR") + elif item.georeferenced == "FULL_COMPATIBLE": + row.label(text="", icon="WORLD") + if item.has_transformation: + row.label(text="", icon="OBJECT_ORIGIN") + + row.label(text=item.filepath) + icon = "RESTRICT_SELECT_OFF" if item.is_selectable else "RESTRICT_SELECT_ON" + row.operator("bim.toggle_link_selectability", text="", icon=icon, emboss=False).link_index = index + icon = "CUBE" if item.is_wireframe else "MESH_CUBE" + op = row.operator("bim.toggle_link_visibility", text="", icon=icon, emboss=False) + op.link_index = index + op.mode = "WIREFRAME" + icon = "HIDE_ON" if item.is_hidden else "HIDE_OFF" + op = row.operator("bim.toggle_link_visibility", text="", icon=icon, emboss=False) + op.link_index = index + op.mode = "VISIBLE" + else: + row.label(text=item.filepath) class BIM_PT_purge(Panel): diff --git a/src/bonsai/bonsai/bim/operator.py b/src/bonsai/bonsai/bim/operator.py index 456d5ed5a0..f332c91401 100644 --- a/src/bonsai/bonsai/bim/operator.py +++ b/src/bonsai/bonsai/bim/operator.py @@ -268,63 +268,45 @@ class SaveBlendMetadataFile(bpy.types.Operator): import bpy # Ensure all styles are loaded before attempting to remove them -try: - bpy.ops.bim.load_styles() -except Exception: - pass +bpy.ops.bim.load_styles() # 1. Collect all IfcStyle material names ifcstyle_material_names = [] -try: - styles_props = getattr(bpy.context.scene, "BIMStylesProperties", None) - if styles_props is None and bpy.data.scenes: - styles_props = getattr(bpy.data.scenes[0], "BIMStylesProperties", None) - if styles_props: - for style in list(styles_props.styles): - material = getattr(style, "blender_material", None) - if material and material.name: - ifcstyle_material_names.append(material.name) -except Exception: - pass +styles_props = getattr(bpy.context.scene, "BIMStylesProperties", None) +if styles_props is None and bpy.data.scenes: + styles_props = getattr(bpy.data.scenes[0], "BIMStylesProperties", None) +if styles_props: + for style in list(styles_props.styles): + material = getattr(style, "blender_material", None) + if material and material.name: + ifcstyle_material_names.append(material.name) # 2. Purge IfcStore -try: - from bonsai.bim.ifc import IfcStore -except ImportError: - IfcStore = None - -if IfcStore: - try: - IfcStore.purge() - except Exception: - pass +from bonsai.bim.ifc import IfcStore +IfcStore.purge() # 3. Remove all collections named IfcProject* for collection in list(bpy.data.collections): if collection.name.startswith('IfcProject'): - try: - bpy.data.collections.remove(collection, do_unlink=True) - except Exception: - pass + bpy.data.collections.remove(collection, do_unlink=True) -# 4. Purge orphaned data blocks after removing IfcProject collections -try: - bpy.ops.outliner.orphans_purge(do_local_ids=True, do_linked_ids=True, do_recursive=True) -except Exception: - pass +# 4.1 Remove all collections from linked libraries (they will be recreated by bonsai) +for collection in list(bpy.data.collections): + if collection.library: + bpy.data.collections.remove(collection, do_unlink=True) -# 5. Remove all materials corresponding to the IfcStyles we collected -materials_removed = 0 -try: - for mat_name in ifcstyle_material_names: - if mat_name in bpy.data.materials: - try: - bpy.data.materials.remove(bpy.data.materials[mat_name], do_unlink=True) - materials_removed += 1 - except Exception: - pass -except Exception: - pass +# 4.2. Remove all empty objects that are collection instances for linked models +for obj in list(bpy.data.objects): + if obj.type == 'EMPTY' and obj.instance_type == 'COLLECTION' and obj.name.startswith('IfcProject/'): + bpy.data.objects.remove(obj, do_unlink=True) + +# 5. Purge orphaned data blocks after removing IfcProject collections +bpy.ops.outliner.orphans_purge(do_local_ids=True, do_linked_ids=True, do_recursive=True) + +# 6. Remove all materials corresponding to the IfcStyles we collected +for mat_name in ifcstyle_material_names: + if mat_name in bpy.data.materials: + bpy.data.materials.remove(bpy.data.materials[mat_name], do_unlink=True) bpy.ops.wm.save_as_mainfile(filepath=r'{blendmetadata_path}') """ diff --git a/src/bonsai/bonsai/core/georeference.py b/src/bonsai/bonsai/core/georeference.py index e74b5f577d..442c928b4e 100644 --- a/src/bonsai/bonsai/core/georeference.py +++ b/src/bonsai/bonsai/core/georeference.py @@ -29,6 +29,7 @@ if TYPE_CHECKING: def add_georeferencing(georeference: type[tool.Georeference]) -> None: georeference.add_georeferencing() + georeference.set_model_origin() def enable_editing_georeferencing(georeference: type[tool.Georeference]) -> None: @@ -37,8 +38,9 @@ def enable_editing_georeferencing(georeference: type[tool.Georeference]) -> None georeference.enable_editing() -def remove_georeferencing(ifc: type[tool.Ifc]) -> None: +def remove_georeferencing(ifc: type[tool.Ifc], georeference: type[tool.Georeference]) -> None: ifc.run("georeference.remove_georeferencing") + georeference.set_model_origin() def disable_editing_georeferencing(georeference: type[tool.Georeference]) -> None: diff --git a/src/bonsai/bonsai/tool/document.py b/src/bonsai/bonsai/tool/document.py index 5d0aaf1a8e..910ca92cf4 100644 --- a/src/bonsai/bonsai/tool/document.py +++ b/src/bonsai/bonsai/tool/document.py @@ -251,11 +251,19 @@ class Document(bonsai.core.tool.Document): def get_document_references( cls, document: ifcopenshell.entity_instance ) -> tuple[ifcopenshell.entity_instance, ...]: + # TODO: migrate to util.document and replace all instances """Get IfcDocumentReference.ReferencedDocuments, compatible with IFC2X3.""" if document.file.schema == "IFC2X3": return document.DocumentReferences or () return document.HasDocumentReferences + @classmethod + def get_reference_document(cls, reference: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance | None: + # TODO: migrate to util.document and replace all instances + if reference.file.schema == "IFC2X3": + return (reference.ReferenceToDocument or (None))[0] + return reference.ReferencedDocument + @classmethod def clear_active_document(cls) -> None: props = cls.get_document_props() diff --git a/src/bonsai/bonsai/tool/georeference.py b/src/bonsai/bonsai/tool/georeference.py index eefdd12cd9..3fa3e51f62 100644 --- a/src/bonsai/bonsai/tool/georeference.py +++ b/src/bonsai/bonsai/tool/georeference.py @@ -315,6 +315,21 @@ class Georeference(bonsai.core.tool.Georeference): ) return coordinates + @classmethod + def global2local(cls, matrix, is_specified_in_map_units: bool) -> tuple[float, float, float]: + matrix = ifcopenshell.util.geolocation.auto_global2local(tool.Ifc.get(), matrix, is_specified_in_map_units=is_specified_in_map_units) + props = cls.get_georeference_props() + if props.has_blender_offset: + matrix = ifcopenshell.util.geolocation.global2local( + matrix, + float(props.blender_offset_x), + float(props.blender_offset_y), + float(props.blender_offset_z), + float(props.blender_x_axis_abscissa), + float(props.blender_x_axis_ordinate), + ) + return matrix + @classmethod def import_plot(cls, filepath: str) -> None: import bmesh @@ -385,6 +400,9 @@ class Georeference(bonsai.core.tool.Georeference): unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) gprops = tool.Georeference.get_georeference_props() e, n, h = cls.xyz2enh((0, 0, 0), should_return_in_map_units=False) + crs = ifcopenshell.util.geolocation.get_crs(tool.Ifc.get()) or {} + gprops.model_is_georeferenced = bool(crs) + gprops.model_crs = crs.get("Name", "") or "" gprops.model_origin = f"{e},{n},{h}" gprops.model_origin_si = f"{e * unit_scale},{n * unit_scale},{h * unit_scale}" angle = ifcopenshell.util.geolocation.get_grid_north(tool.Ifc.get()) diff --git a/src/bonsai/bonsai/tool/project.py b/src/bonsai/bonsai/tool/project.py index d4df4c80de..da613c3fa9 100644 --- a/src/bonsai/bonsai/tool/project.py +++ b/src/bonsai/bonsai/tool/project.py @@ -19,10 +19,14 @@ from __future__ import annotations import os +import json +import math import shutil +import numpy as np from collections import defaultdict +from math import radians from pathlib import Path -from typing import TYPE_CHECKING, NamedTuple, Optional, Union +from typing import TYPE_CHECKING, NamedTuple, Optional import bpy import ifcopenshell @@ -58,6 +62,47 @@ class Project(bonsai.core.tool.Project): assert (scene := bpy.context.scene) return scene.MeasureToolSettings # pyright: ignore[reportAttributeAccessIssue] + @classmethod + def get_link_empty_handle(cls, link) -> bpy.types.Object | None: + if tool.Ifc.get(): + return tool.Ifc.get_object(tool.Ifc.get().by_id(link.ifc_definition_id)) + return link.empty_handle + + @classmethod + def set_link_empty_handle(cls, link, empty: bpy.types.Object) -> None: + if tool.Ifc.get(): + tool.Ifc.link(tool.Ifc.get().by_id(link.ifc_definition_id), empty) + else: + link.empty_handle = empty + + @classmethod + def calculate_link_matrix(cls, link) -> None: + filepath = Path(tool.Ifc.resolve_uri(link.filepath)) + with open(filepath.with_suffix(".ifc.cache.json"), "r") as f: + metadata = json.load(f) + + rot = ifcopenshell.util.shape_builder.np_rotation_matrix( + radians(-float(metadata["model_project_north"])), 4, "Z" + ) + global_matrix = rot @ np.eye(4) + global_matrix[:, 3][:3] = [float(o) for o in metadata["model_origin_si"].split(",")] + + if tool.Ifc.get(): + transformation = tool.Ifc.get().by_id(link.ifc_definition_id)[1] # Identification + else: + transformation = link.transformation + + if transformation: + transformation = np.fromstring(transformation, sep=",", dtype=np.float64).reshape(4, 4) + if not np.allclose(transformation, np.eye(4)): + global_matrix = transformation @ global_matrix + + gprops = tool.Georeference.get_georeference_props() + rot = ifcopenshell.util.shape_builder.np_rotation_matrix(radians(-float(gprops.model_project_north)), 4, "Z") + local_matrix = rot @ np.eye(4) + local_matrix[:, 3][:3] = [float(o) for o in gprops.model_origin_si.split(",")] + return np.linalg.inv(local_matrix) @ global_matrix + @classmethod def append_all_types_from_template(cls, template: str) -> None: # TODO refactor @@ -249,68 +294,32 @@ class Project(bonsai.core.tool.Project): tool.Root.reload_grid_decorator() @classmethod - def get_linked_models_document(cls) -> Union[ifcopenshell.entity_instance, None]: - for document in tool.Ifc.get().by_type("IfcDocumentInformation"): - if document.Name == "BBIM_Linked_Models": - return document + def get_linked_models_documents(cls) -> dict[str, ifcopenshell.entity_instance]: + linked_docs = {} + for doc in tool.Ifc.get().by_type("IfcDocumentInformation"): + if doc.Scope == "LINKED_MODEL": + for reference in tool.Drawing.get_document_references(doc): + linked_docs[Path(reference.Location).as_posix()] = doc + break + return linked_docs @classmethod def load_linked_models_from_ifc(cls) -> None: links = tool.Project.get_project_props().links links.clear() - links_document = cls.get_linked_models_document() - if not links_document: - return - - references = tool.Document.get_document_references(links_document) - if not references: - return - - for reference in references: - link = links.add() - link.name = reference.Location - - @classmethod - def save_linked_models_to_ifc(cls) -> None: - ifc_file = tool.Ifc.get() - links = tool.Project.get_project_props().links - filepaths: set[Path] = set() - for link in links: - filepaths.add(Path(link.name)) - - links_document = cls.get_linked_models_document() - - if not filepaths and links_document is None: - return - - paths_to_add = filepaths.copy() - references_to_remove: list[ifcopenshell.entity_instance] = [] - if links_document: - references = tool.Document.get_document_references(links_document) - for reference in references: - # I guess got corrupted by the user. - if not (location := reference.Location): - references_to_remove.remove(reference) - continue - path = Path(location) - if path in paths_to_add: - paths_to_add.remove(path) - else: - references_to_remove.append(reference) - - if paths_to_add: - if links_document is None: - links_document = ifcopenshell.api.document.add_information(ifc_file) - links_document.Name = "BBIM_Linked_Models" - links_document.Description = "Bonsai internal document containing references to currently linked models" - - for path in paths_to_add: - reference = ifcopenshell.api.document.add_reference(ifc_file, links_document) - reference.Location = path.as_posix() - - if references_to_remove: - for reference in references_to_remove: - ifcopenshell.api.document.remove_reference(ifc_file, reference) + for doc in tool.Ifc.get().by_type("IfcDocumentInformation"): + if doc.Scope != "LINKED_MODEL": + continue + for reference in tool.Drawing.get_document_references(doc): + filepath = reference.Location + link = links.add() + link.name = filepath + link.filepath = filepath + link.ifc_definition_id = reference.id() + link.has_transformation = False + if reference[1]: + m = np.fromstring(reference[1], sep=",", dtype=np.float64).reshape(4, 4) + link.has_transformation = not np.allclose(m, np.eye(4)) @classmethod def get_project_library_elements( diff --git a/src/bonsai/test/bim/feature/project.feature b/src/bonsai/test/bim/feature/project.feature index cb9aeec21e..f536a17220 100644 --- a/src/bonsai/test/bim/feature/project.feature +++ b/src/bonsai/test/bim/feature/project.feature @@ -677,31 +677,43 @@ Scenario: Load project elements - all georeferencing coordinate situations with And the object "IfcActuator/J" has a vertex at "10.366,3.813,-1" And the object "IfcActuator/J" has a vertex at "12.298,4.331,-1" -Scenario: Link IFC +Scenario: Link IFC - from an empty IFC project Given an empty IFC project - When I link IFC project from "{cwd}/test/files/basic.ifc" + When I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_loaded" is "True" And the collection "IfcProject/basic.ifc" exists And the object "Chunk" exists And the object "Chunk" is placed in the collection "IfcProject/basic.ifc" -Scenario: Link IFC - disabled false origin mode - Given an empty IFC project - # Not currently possible via UI - And I set "scene.BIMProjectProperties.distance_limit" to "5" - And I set "scene.BIMProjectProperties.false_origin_mode" to "DISABLED" - When I link IFC project from "{cwd}/test/files/geolocation.ifc" - Then the object "Chunk" exists - And the object "Chunk" has a vertex at "2,2,-1" - And the object "Chunk" has a vertex at "9,-1,-1" - And the object "Chunk" has a vertex at "17,4,-1" - Scenario: Link IFC - from an empty IFC project - automatic false origin mode (0,0,0 will be the false origin) Given an empty IFC project # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I link IFC project from "{cwd}/test/files/geolocation.ifc" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + Then the object "Chunk" exists + And the object "Chunk" has a vertex at "2,2,-1" + And the object "Chunk" has a vertex at "9,-1,-1" + And the object "Chunk" has a vertex at "17,4,-1" + +Scenario: Link IFC - from an empty IFC project - manual false origin mode + Given an empty IFC project + # Not currently possible via UI + And I set "scene.BIMProjectProperties.distance_limit" to "5" + And I set "scene.BIMProjectProperties.false_origin_mode" to "MANUAL" + And I set "scene.BIMProjectProperties.false_origin" to "10000,0,0" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + Then the object "Chunk" exists + And the object "Chunk" has a vertex at "2,2,-1" + And the object "Chunk" has a vertex at "9,-1,-1" + And the object "Chunk" has a vertex at "17,4,-1" + +Scenario: Link IFC - from an empty IFC project - disabled false origin mode + Given an empty IFC project + # Not currently possible via UI + And I set "scene.BIMProjectProperties.distance_limit" to "5" + And I set "scene.BIMProjectProperties.false_origin_mode" to "DISABLED" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" Then the object "Chunk" exists And the object "Chunk" has a vertex at "2,2,-1" And the object "Chunk" has a vertex at "9,-1,-1" @@ -712,31 +724,42 @@ Scenario: Link IFC - from an empty Blender session - automatic false origin mode # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I link IFC project from "{cwd}/test/files/geolocation.ifc" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" Then the object "Chunk" exists And the object "Chunk" has a vertex at "-11,-2,0" And the object "Chunk" has a vertex at "-4,-5,0" And the object "Chunk" has a vertex at "4,0,0" -Scenario: Link IFC - manual false origin mode +Scenario: Link IFC - from an empty Blender session - manual false origin mode Given an empty Blender session # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "MANUAL" And I set "scene.BIMProjectProperties.false_origin" to "10000,0,0" - When I link IFC project from "{cwd}/test/files/geolocation.ifc" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" Then the object "Chunk" exists And the object "Chunk" has a vertex at "-8,2,-1" And the object "Chunk" has a vertex at "-1,-1,-1" And the object "Chunk" has a vertex at "7,4,-1" -Scenario: Link IFC - automatic false origin mode - two different false origins and project norths - grid north is up because we start with geolocation.ifc +Scenario: Link IFC - from an empty Blender session - disabled false origin mode + Given an empty Blender session + # Not currently possible via UI + And I set "scene.BIMProjectProperties.distance_limit" to "5" + And I set "scene.BIMProjectProperties.false_origin_mode" to "DISABLED" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + Then the object "Chunk" exists + And the object "Chunk" has a vertex at "2,2,-1" + And the object "Chunk" has a vertex at "9,-1,-1" + And the object "Chunk" has a vertex at "17,4,-1" + +Scenario: Link IFC - from an empty Blender session - automatic false origin mode - two different false origins and project norths - grid north is up because we start with geolocation.ifc Given an empty Blender session # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I link IFC project from "{cwd}/test/files/geolocation.ifc" - And I link IFC project from "{cwd}/test/files/geolocation-mapconversion-angle.ifc" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-mapconversion-angle.ifc', use_cache=False)" Then the object "Col:IfcProject/geolocation.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" exists And the object "Col:IfcProject/geolocation.ifc:Chunk" has a vertex at "-11,-2,0" @@ -746,13 +769,13 @@ Scenario: Link IFC - automatic false origin mode - two different false origins a And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" has a vertex at "9.294,-9.366,0" And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" has a vertex at "18.722,-9.036,0" -Scenario: Link IFC - automatic false origin mode - two different false origins and project norths - project north is up because we start with geolocation-mapconversion-angle.ifc +Scenario: Link IFC - from an empty Blender session - automatic false origin mode - two different false origins and project norths - project north is up because we start with geolocation-mapconversion-angle.ifc Given an empty Blender session # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I link IFC project from "{cwd}/test/files/geolocation-mapconversion-angle.ifc" - And I link IFC project from "{cwd}/test/files/geolocation.ifc" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-mapconversion-angle.ifc', use_cache=False)" + And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" Then the object "Col:IfcProject/geolocation.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" has a vertex at "-11,-2,0" @@ -762,14 +785,14 @@ Scenario: Link IFC - automatic false origin mode - two different false origins a And the object "Col:IfcProject/geolocation.ifc:Chunk" has a vertex at "-17.696,-7.866,0" And the object "Col:IfcProject/geolocation.ifc:Chunk" has a vertex at "-13.268,0.464,0" -Scenario: Link IFC - automatic false origin mode - three identical false origins but different project and map units +Scenario: Link IFC - from an empty Blender session - automatic false origin mode - three identical false origins but different project and map units Given an empty Blender session # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I link IFC project from "{cwd}/test/files/geolocation-unit1.ifc" - And I link IFC project from "{cwd}/test/files/geolocation-unit2.ifc" - And I link IFC project from "{cwd}/test/files/geolocation-unit3.ifc" + When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-unit1.ifc', use_cache=False)" + And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-unit2.ifc', use_cache=False)" + And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-unit3.ifc', use_cache=False)" Then the object "Col:IfcProject/geolocation-unit1.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-unit2.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-unit3.ifc:Chunk" exists @@ -779,54 +802,54 @@ Scenario: Link IFC - automatic false origin mode - three identical false origins Scenario: Toggle link visibility - wireframe mode Given an empty IFC project - And I link IFC project from "{cwd}/test/files/basic.ifc" - When I press "bim.toggle_link_visibility(link='{cwd}/test/files/basic.ifc', mode='WIREFRAME')" + And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + When I press "bim.toggle_link_visibility(link_index=0, mode='WIREFRAME')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_wireframe" is "True" And the object "Chunk" should display as "WIRE" - When I press "bim.toggle_link_visibility(link='{cwd}/test/files/basic.ifc', mode='WIREFRAME')" + When I press "bim.toggle_link_visibility(link_index=0, mode='WIREFRAME')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_wireframe" is "False" And the object "Chunk" should display as "TEXTURED" Scenario: Toggle link selectability Given an empty IFC project - And I link IFC project from "{cwd}/test/files/basic.ifc" - When I press "bim.toggle_link_selectability(link='{cwd}/test/files/basic.ifc')" + And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + When I press "bim.toggle_link_selectability(link_index=0)" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_selectable" is "False" And the collection "IfcProject/basic.ifc" is unselectable - When I press "bim.toggle_link_selectability(link='{cwd}/test/files/basic.ifc')" + When I press "bim.toggle_link_selectability(link_index=0)" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_selectable" is "True" And the collection "IfcProject/basic.ifc" is selectable Scenario: Toggle link visibility - visible mode Given an empty IFC project - And I link IFC project from "{cwd}/test/files/basic.ifc" - When I press "bim.toggle_link_visibility(link='{cwd}/test/files/basic.ifc', mode='VISIBLE')" + And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + When I press "bim.toggle_link_visibility(link_index=0, mode='VISIBLE')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_hidden" is "True" And the object "IfcProject/basic.ifc" is not visible - When I press "bim.toggle_link_visibility(link='{cwd}/test/files/basic.ifc', mode='VISIBLE')" + When I press "bim.toggle_link_visibility(link_index=0, mode='VISIBLE')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_hidden" is "False" And the object "IfcProject/basic.ifc" is visible Scenario: Unload link Given an empty Blender session - And I link IFC project from "{cwd}/test/files/basic.ifc" - When I press "bim.unload_link(filepath='{cwd}/test/files/basic.ifc')" + And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + When I press "bim.unload_link(link_index=0)" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_loaded" is "False" And the collection "IfcProject/basic.ifc" does not exist Scenario: Load link Given an empty Blender session - And I link IFC project from "{cwd}/test/files/basic.ifc" - And I press "bim.unload_link(filepath='{cwd}/test/files/basic.ifc')" - When I press "bim.load_link(filepath='{cwd}/test/files/basic.ifc')" + And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I press "bim.unload_link(link_index=0)" + When I press "bim.load_link(link_index=0)" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_loaded" is "True" And the object "IfcProject/basic.ifc" exists Scenario: Unlink IFC Given an empty Blender session - And I link IFC project from "{cwd}/test/files/basic.ifc" - And I press "bim.unload_link(filepath='{cwd}/test/files/basic.ifc')" - When I press "bim.unlink_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I press "bim.unload_link(link_index=0)" + When I press "bim.unlink_ifc(link_index=0)" Then "scene.BIMProjectProperties.links.get('{cwd}/test/files/basic.ifc')" is "None" And "scene.collection.children.get('IfcProject/basic.ifc')" is "None" And the object "Chunk" does not exist diff --git a/src/bonsai/test/bim/test_feature.py b/src/bonsai/test/bim/test_feature.py index 9df6bbf627..a6d93c0006 100644 --- a/src/bonsai/test/bim/test_feature.py +++ b/src/bonsai/test/bim/test_feature.py @@ -70,10 +70,7 @@ Can be useful for debugging, but has caveats - can't use ``wm.read_homefile`` as resets the ``bpy.context`` and some it's members become `None`. """ -TMP = Path.cwd() / "test/files/temp" -TEST_FILES_DIR = Path.cwd() / "test/files" - -CLEAN_LINKED_FILES_CACHE = False +TMP = Path(f"{variables['cwd']}/test/files/temp") EPSET_DRAWING = Path.cwd() / "bonsai/bim/data/pset/EPset_Drawing.ifc" EPSET_DRAWING_BYTES = EPSET_DRAWING.read_bytes() @@ -311,25 +308,6 @@ def vectors_are_equal(v1, v2): return all(is_x(v1[i], v2[i]) for i in range(len(v1))) -@pytest.fixture(scope="function", autouse=True) -def run_for_each_test() -> Generator[None]: - # Code before this runs before each test - yield - # Code after this runs after each test - - global CLEAN_LINKED_FILES_CACHE - if CLEAN_LINKED_FILES_CACHE: - for filepath in TEST_FILES_DIR.glob("*.ifc.cache.*"): - filepath.unlink() - CLEAN_LINKED_FILES_CACHE = False - - # pset_template tests are editing EPset_Drawing.ifc, so we need to restore it. - global RELOAD_EPSET_DRAWING - if RELOAD_EPSET_DRAWING: - EPSET_DRAWING.write_bytes(EPSET_DRAWING_BYTES) - RELOAD_EPSET_DRAWING = False - - @given("an untestable scenario") def an_untestable_scenario(): pass @@ -384,16 +362,6 @@ def saving_ifc_project() -> None: tool.Project.save_test_project() -@given(parsers.parse('I link IFC project from "{filepath}"')) -@when(parsers.parse('I link IFC project from "{filepath}"')) -@then(parsers.parse('I link IFC project from "{filepath}"')) -def i_link_ifc_project_from_filepath(filepath: str) -> None: - global CLEAN_LINKED_FILES_CACHE - filepath = replace_variables(filepath) - CLEAN_LINKED_FILES_CACHE = True - bpy.ops.bim.link_ifc(filepath=filepath, use_cache=False) - - @given("the Brickschema is stubbed") def the_brickschema_is_stubbed(): # This makes things run faster since we don't need to load the entire brick schema @@ -1587,10 +1555,19 @@ def the_object_name_has_a_vertex_at_location(name, location): is_pass = False target = Vector([float(co) for co in location.split(",")]) verts = [] - for v in obj.data.vertices: - verts.append(obj.matrix_world @ v.co) - if (verts[-1] - target).length < 0.001: - is_pass = True + depsgraph = bpy.context.evaluated_depsgraph_get() + obj_eval = obj.evaluated_get(depsgraph) + mesh = obj_eval.to_mesh(preserve_all_data_layers=False, depsgraph=depsgraph) + try: + for inst in depsgraph.object_instances: + if inst.object.original is obj: + mw = inst.matrix_world + for i, v in enumerate(mesh.vertices): + verts.append(mw @ v.co) + if (verts[-1] - target).length < 0.001: + is_pass = True + finally: + obj_eval.to_mesh_clear() assert is_pass, f"No verts found at {location}: {verts}" diff --git a/src/bonsai/test/tool/test_project.py b/src/bonsai/test/tool/test_project.py index 06c3f8ec25..43dc61be8e 100644 --- a/src/bonsai/test/tool/test_project.py +++ b/src/bonsai/test/tool/test_project.py @@ -16,9 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json import contextlib import tempfile +import numpy as np from pathlib import Path +from tempfile import NamedTemporaryFile import bpy import ifcopenshell @@ -263,7 +266,7 @@ class TestLoadLinkedModels(NewFile): props = tool.Project.get_project_props() ifcopenshell.api.root.create_entity(ifc, "IfcProject") document = ifcopenshell.api.document.add_information(ifc) - document.Name = "BBIM_Linked_Models" + document.Name = "X" tool.Ifc.set(ifc) subject.load_linked_models_from_ifc() assert len(props.links) == 0 @@ -273,86 +276,81 @@ class TestLoadLinkedModels(NewFile): props = tool.Project.get_project_props() ifcopenshell.api.root.create_entity(ifc, "IfcProject") document = ifcopenshell.api.document.add_information(ifc) - document.Name = "BBIM_Linked_Models" + document.Scope = "LINKED_MODEL" reference = ifcopenshell.api.document.add_reference(ifc, document) - linked_model_path = "test.ifc" - reference.Location = linked_model_path + reference.Location = "test.ifc" + reference.Identification = "" + reference2 = ifcopenshell.api.document.add_reference(ifc, document) + reference2.Location = "test2.ifc" + reference2.Identification = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16" tool.Ifc.set(ifc) subject.load_linked_models_from_ifc() - assert len(props.links) == 1 - assert props.links[0].name == linked_model_path + assert len(props.links) == 2 + assert props.links[0].name == "test.ifc" + assert props.links[0].ifc_definition_id == reference.id() + assert props.links[0].has_transformation is False + assert props.links[1].name == "test2.ifc" + assert props.links[1].ifc_definition_id == reference2.id() + assert props.links[1].has_transformation is True -class TestSaveLinkedModelsToIfc(NewFile): - def test_save_linked_models_to_ifc_no_links(self): - ifc = ifcopenshell.file() - tool.Ifc.set(ifc) - subject.save_linked_models_to_ifc() - assert len(ifc.by_type("IfcDocumentInformation")) == 0 - assert len(ifc.by_type("IfcDocumentReference")) == 0 - - def test_save_linked_models_to_ifc_paths_to_add(self): - ifc = ifcopenshell.file() - ifcopenshell.api.root.create_entity(ifc, "IfcProject") +class TestCalculateLinkMatrix(NewFile): + def test_linking_a_model_without_an_offset_to_our_session_with_no_offset(self): props = tool.Project.get_project_props() - link = props.links.add() - linked_model_path = "test.ifc" - link.name = linked_model_path - tool.Ifc.set(ifc) - subject.save_linked_models_to_ifc() - assert len(documents := ifc.by_type("IfcDocumentInformation")) == 1 - assert documents[0].Name == "BBIM_Linked_Models" - assert len(references := ifc.by_type("IfcDocumentReference")) == 1 - assert references[0].Location == linked_model_path + gprops = tool.Georeference.get_georeference_props() + with NamedTemporaryFile(suffix=".ifc.cache.json", mode="w", delete=True) as tmp: + link = props.links.add() + link.filepath = tmp.name.replace(".ifc.cache.json", ".ifc") + json.dump({"model_project_north": "0", "model_origin_si": "0,0,0"}, tmp) + tmp.flush() + gprops.model_project_north = "0" + gprops.model_origin_si = "0,0,0" + assert np.allclose(subject.calculate_link_matrix(link), np.eye(4)) - def test_save_linked_models_to_ifc_already_created_references(self): - ifc = ifcopenshell.file() - links = tool.Project.get_project_props().links - ifcopenshell.api.root.create_entity(ifc, "IfcProject") + def test_linking_an_offset_model_to_our_session_with_no_offset(self): + props = tool.Project.get_project_props() + gprops = tool.Georeference.get_georeference_props() + with NamedTemporaryFile(suffix=".ifc.cache.json", mode="w", delete=True) as tmp: + link = props.links.add() + link.filepath = tmp.name.replace(".ifc.cache.json", ".ifc") + json.dump({"model_project_north": "0", "model_origin_si": "5,0,0"}, tmp) + tmp.flush() + gprops.model_project_north = "0" + gprops.model_origin_si = "0,0,0" + m = np.eye(4) + m[0][3] = 5 + assert np.allclose(subject.calculate_link_matrix(link), m) - document = ifcopenshell.api.document.add_information(ifc) - document.Name = "BBIM_Linked_Models" - document_id = document.id() - reference = ifcopenshell.api.document.add_reference(ifc, document) - linked_model_path = "test.ifc" - reference.Location = linked_model_path - reference_id = reference.id() + def test_linking_an_offset_model_to_our_session_with_offset(self): + props = tool.Project.get_project_props() + gprops = tool.Georeference.get_georeference_props() + with NamedTemporaryFile(suffix=".ifc.cache.json", mode="w", delete=True) as tmp: + link = props.links.add() + link.filepath = tmp.name.replace(".ifc.cache.json", ".ifc") + json.dump({"model_project_north": "0", "model_origin_si": "5,0,0"}, tmp) + tmp.flush() + gprops.model_project_north = "0" + gprops.model_origin_si = "2,0,0" + m = np.eye(4) + m[0][3] = 3 + assert np.allclose(subject.calculate_link_matrix(link), m) - link = links.add() - linked_model_path = "test.ifc" - link.name = linked_model_path - tool.Ifc.set(ifc) - subject.save_linked_models_to_ifc() - - # Information and references to stay intact. - assert len(documents := ifc.by_type("IfcDocumentInformation")) == 1 - assert documents[0].id() == document_id - assert documents[0].Name == "BBIM_Linked_Models" - assert len(references := ifc.by_type("IfcDocumentReference")) == 1 - assert references[0].id() == reference_id - assert references[0].Location == linked_model_path - - def test_save_linked_models_to_ifc_references_to_remove(self): - ifc = ifcopenshell.file() - links = tool.Project.get_project_props().links - ifcopenshell.api.root.create_entity(ifc, "IfcProject") - - document = ifcopenshell.api.document.add_information(ifc) - document.Name = "BBIM_Linked_Models" - document_id = document.id() - reference = ifcopenshell.api.document.add_reference(ifc, document) - linked_model_path = "test.ifc" - reference.Location = linked_model_path - - tool.Ifc.set(ifc) - subject.save_linked_models_to_ifc() - links.clear() - - # Remove reference for removed link. - assert len(documents := ifc.by_type("IfcDocumentInformation")) == 1 - assert documents[0].id() == document_id - assert documents[0].Name == "BBIM_Linked_Models" - assert len(ifc.by_type("IfcDocumentReference")) == 0 + def test_linking_an_offset_model_to_our_session_with_offset_and_transformation(self): + props = tool.Project.get_project_props() + gprops = tool.Georeference.get_georeference_props() + with NamedTemporaryFile(suffix=".ifc.cache.json", mode="w", delete=True) as tmp: + link = props.links.add() + link.filepath = tmp.name.replace(".ifc.cache.json", ".ifc") + transformation = np.eye(4) + transformation[0][3] = 4 + link.transformation = ",".join(map(str, transformation.reshape(-1))) + json.dump({"model_project_north": "0", "model_origin_si": "5,0,0"}, tmp) + tmp.flush() + gprops.model_project_north = "0" + gprops.model_origin_si = "2,0,0" + m = np.eye(4) + m[0][3] = 7 + assert np.allclose(subject.calculate_link_matrix(link), m) class TestLoadingIfcSqlite(NewFile): diff --git a/src/ifcopenshell-python/ifcopenshell/util/geolocation.py b/src/ifcopenshell-python/ifcopenshell/util/geolocation.py index fba8dfffaf..42aa28ca51 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/geolocation.py +++ b/src/ifcopenshell-python/ifcopenshell/util/geolocation.py @@ -18,7 +18,7 @@ import math from decimal import ROUND_HALF_UP, Decimal -from typing import NamedTuple, Optional, Union +from typing import NamedTuple, Optional, Union, Any import numpy as np @@ -268,6 +268,15 @@ def get_helmert_transformation_parameters(ifc_file: ifcopenshell.file) -> Option return HelmertTransformation(e, n, h, xaa, xao, scale, factor_x, factor_y, factor_z) +def get_crs(ifc_file: ifcopenshell.file) -> dict[str, Any]: + """Get CRS information from an IFC file.""" + if ifc_file.schema == "IFC2X3": + return ifcopenshell.util.element.get_pset(ifc_file.by_type("IfcProject")[0], "ePSet_ProjectedCRS") + for context in ifc_file.by_type("IfcGeometricRepresentationContext", include_subtypes=False): + if operation := context.HasCoordinateOperation: + return operation[0].TargetCRS.get_info() + + def auto_z2e(ifc_file: ifcopenshell.file, z: float, should_return_in_map_units: bool = True) -> float: """Convert a Z coordinate to an elevation using model georeferencing data From 65d5df7801678158eee63193c2e529f32343ea63 Mon Sep 17 00:00:00 2001 From: Richard Brice <37087370+RickBrice@users.noreply.github.com> Date: Sun, 15 Feb 2026 11:15:04 -0800 Subject: [PATCH 158/171] IfcAxis2PlacementLinear mapping used with IfcSectionedSurface and IfcSectionedSolidHorizontal IfcSectionedSurface and IfcSectionedSolidHorizontal both of CrossSectionPositions attributes which are lists of IfcAxis2PlacementLinear. The implementation of each class used its own bespoke mapping of IfcAxis2PlacementLinear, which were identical to each other and slightly different than IfcAxis2PlacementLinear. Now the two sectioned classes use the one and only mapping for IfcAxis2PlacementLinear --- .../mapping/IfcSectionedSolidHorizontal.cpp | 30 ++--------------- src/ifcgeom/mapping/IfcSectionedSurface.cpp | 33 +++---------------- 2 files changed, 7 insertions(+), 56 deletions(-) diff --git a/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp b/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp index a2bc648f08..ad1e2e0d4c 100644 --- a/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp +++ b/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp @@ -61,33 +61,9 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcSectionedSolidHorizontal* in longitudes.push_back(*pbde->DistanceAlong()->as(true) * length_unit_); - // Corresponds to the profile X, Y directions (hopefully). - Eigen::Vector3d po( - pbde->OffsetLateral().get_value_or(0.), - // @todo I don't understand whether vertical is an offset relative to the tangent plane or to the global XY plane - pbde->OffsetVertical().get_value_or(0.), - 0. - ); - - profile_offsets.push_back(po); - - boost::optional rot; - if (csp->Axis() && csp->RefDirection()) { - rot = taxonomy::matrix4( - Eigen::Vector3d(0, 0, 0), - taxonomy::cast(map(csp->Axis()))->ccomponents(), - taxonomy::cast(map(csp->RefDirection()))->ccomponents()).ccomponents().block<3,3>(0,0); - } else if (csp->Axis()) { - rot = taxonomy::matrix4( - Eigen::Vector3d(0, 0, 0), - taxonomy::cast(map(csp->Axis()))->ccomponents()).ccomponents().block<3, 3>(0, 0); - } else if (csp->RefDirection()) { - rot = taxonomy::matrix4( - Eigen::Vector3d(0, 0, 0), - Eigen::Vector3d(0, 0, 1), - taxonomy::cast(map(csp->RefDirection()))->ccomponents() - ).ccomponents().block<3, 3>(0, 0); - } + auto linear_placement = taxonomy::cast(map(csp)); + profile_offsets.push_back(linear_placement->ccomponents().block<3, 1>(0, 3)); + boost::optional rot(linear_placement->ccomponents().block<3,3>(0,0)); profile_rotations.push_back(rot); } if (faces.size() != profile_offsets.size()) { diff --git a/src/ifcgeom/mapping/IfcSectionedSurface.cpp b/src/ifcgeom/mapping/IfcSectionedSurface.cpp index 49fde15759..b91b7b62c2 100644 --- a/src/ifcgeom/mapping/IfcSectionedSurface.cpp +++ b/src/ifcgeom/mapping/IfcSectionedSurface.cpp @@ -63,35 +63,10 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcSectionedSurface* inst) { longitudes.push_back(*pbde->DistanceAlong()->as(true) * length_unit_); - // Corresponds to the profile X, Y directions (hopefully). - Eigen::Vector3d po( - pbde->OffsetLateral().get_value_or(0.), - // @todo I don't understand whether vertical is an offset relative to the tangent plane or to the global XY plane - pbde->OffsetVertical().get_value_or(0.), - 0. - ); - - profile_offsets.push_back(po); - - boost::optional rot; - if (csp->Axis() && csp->RefDirection()) { - rot = taxonomy::matrix4( - Eigen::Vector3d(0, 0, 0), - taxonomy::cast(map(csp->Axis()))->ccomponents(), - taxonomy::cast(map(csp->RefDirection()))->ccomponents()).ccomponents().block<3, 3>(0, 0); - } else if (csp->Axis()) { - rot = taxonomy::matrix4( - Eigen::Vector3d(0, 0, 0), - taxonomy::cast(map(csp->Axis()))->ccomponents()).ccomponents().block<3, 3>(0, 0); - } else if (csp->RefDirection()) { - rot = taxonomy::matrix4( - Eigen::Vector3d(0, 0, 0), - Eigen::Vector3d(0, 0, 1), - taxonomy::cast(map(csp->RefDirection()))->ccomponents()) - .ccomponents() - .block<3, 3>(0, 0); - } - profile_rotations.push_back(rot); + auto linear_placement = taxonomy::cast(map(csp)); + profile_offsets.push_back(linear_placement->ccomponents().block<3, 1>(0, 3)); + boost::optional rot(linear_placement->ccomponents().block<3, 3>(0, 0)); + profile_rotations.push_back(rot); } #else return nullptr; From 1d1f158fe231f8cbb9b4a5a2082fb9ac6802005d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 16 Feb 2026 08:23:35 +1100 Subject: [PATCH 159/171] Remove no longer relevant invoke code for linking IFCs --- .../bonsai/bim/module/project/operator.py | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index e4e57275ba..1d0e52976b 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -1370,29 +1370,6 @@ class LinkIfc(bpy.types.Operator, ImportHelper, tool.Ifc.Operator): row = self.layout.row() row.prop(pprops, "project_north") - def invoke(self, context, event): - pprops = tool.Project.get_project_props() - - # Populate false origin and project north from 3D cursor for user convenience - cursor = context.scene.cursor - cursor_loc = cursor.location - cursor_rot = cursor.rotation_euler - angle = -cursor_rot.z - - # Calculate false origin based on the provided formulas - # x = -3Dcursor.x * cos(angle) - 3Dcursor.y * sin(angle) - # y = 3Dcursor.x * sin(angle) - 3Dcursor.y * cos(angle) - # z = -3Dcursor.z - false_origin_x = -cursor_loc.x * math.cos(angle) - cursor_loc.y * math.sin(angle) - false_origin_y = cursor_loc.x * math.sin(angle) - cursor_loc.y * math.cos(angle) - false_origin_z = -cursor_loc.z - - # Set the false_origin value - pprops.false_origin = f"{false_origin_x:.3f},{false_origin_y:.3f},{false_origin_z:.3f}" - pprops.project_north = str(round(math.degrees(angle), 1)) - - return super().invoke(context, event) - def _execute(self, context): start = time.time() files = [f.name for f in self.files] if self.files else [self.filepath] From 379c74b31fceb50ead27d7a7c9c0e3dccc489c5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 22:45:21 +0000 Subject: [PATCH 160/171] Bump ruff from 0.15.0 to 0.15.1 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.0 to 0.15.1. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.15.0...0.15.1) --- updated-dependencies: - dependency-name: ruff dependency-version: 0.15.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 74c3b0ee18..95b61e2c39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "IfcOpenShell" version = "0.0.0" dependencies = [ "black==26.1.0", - "ruff==0.15.0", + "ruff==0.15.1", "poethepoet", "gersemi==0.25.4", ] From 8cfb162851888202d03b3812552d4f306cedc3cb Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 16 Feb 2026 17:57:03 +1100 Subject: [PATCH 161/171] Fix #7656. Regression in text editing where leaders were accidentally removed. Added tests. --- src/bonsai/bonsai/tool/drawing.py | 6 ++++-- src/bonsai/test/tool/test_drawing.py | 30 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index a7238c75dc..864568c835 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -857,9 +857,11 @@ class Drawing(bonsai.core.tool.Drawing): def edit_text_literals(cls, obj: bpy.types.Object, literal_attributes: dict) -> None: assert (element := tool.Ifc.get_entity(obj)) assert (rep := cls.get_annotation_representation(element)) - for literal in cls.get_text_literal(obj, return_list=True): + to_remove = [i for i in rep.Items if i.is_a("IfcTextLiteral")] + new_literals = [cls.add_literal(**a) for a in literal_attributes] + rep.Items = [i for i in rep.Items if not i.is_a("IfcTextLiteral")] + new_literals + for literal in to_remove: ifcopenshell.util.element.remove_deep2(tool.Ifc.get(), literal) - rep.Items = [cls.add_literal(**a) for a in literal_attributes] @classmethod def add_literal(cls, **attributes: str) -> ifcopenshell.entity_instance: diff --git a/src/bonsai/test/tool/test_drawing.py b/src/bonsai/test/tool/test_drawing.py index f7beb94358..532186d7ff 100644 --- a/src/bonsai/test/tool/test_drawing.py +++ b/src/bonsai/test/tool/test_drawing.py @@ -21,6 +21,7 @@ import xml.etree.ElementTree as ET from pathlib import Path import bpy +import pytest import ifcopenshell import ifcopenshell.api.drawing import ifcopenshell.api.group @@ -31,6 +32,7 @@ import ifcopenshell.util.element import mathutils import numpy as np from mathutils import Vector +from ifcopenshell.util.shape_builder import ShapeBuilder import bonsai.core.tool import bonsai.tool as tool @@ -150,6 +152,34 @@ class TestDisableEditingSheets(NewFile): assert props.is_editing_sheets == False +class TestEditTextLiterals(NewFile): + def test_run(self): + ifc = ifcopenshell.file() + tool.Ifc.set(ifc) + obj = bpy.data.objects.new("Object", None) + element = ifc.createIfcAnnotation() + element.Representation = ifc.createIfcProductDefinitionShape() + context = ifc.createIfcGeometricRepresentationSubContext(ContextType="Plan", ContextIdentifier="Annotation") + item = ifc.createIfcTextLiteralWithExtent(Literal="Literal", Path="RIGHT", BoxAlignment="bottom-left") + builder = ShapeBuilder(tool.Ifc.get()) + polyline = builder.polyline([(0.,0.,0.), (1.,0.,0.)]) + representation = ifc.createIfcShapeRepresentation(ContextOfItems=context, Items=[item, polyline]) + element.Representation.Representations = [representation] + tool.Ifc.link(element, obj) + literal_attributes = [ + { + "Literal": "Foo", + "Path": "RIGHT", + "BoxAlignment": "bottom-left", + } + ] + subject.edit_text_literals(obj, literal_attributes) + assert len(ifc.by_type("IfcTextLiteralWithExtent")) == 1 + literal = ifc.by_type("IfcTextLiteralWithExtent")[0] + assert literal in representation.Items + assert literal.Literal == "Foo" + + class TestDisableEditingText(NewFile): def test_run(self): obj = bpy.data.objects.new("Object", None) From 8c0bed0c614800d3bf118ec35ae24a76b3fd3a92 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 16 Feb 2026 18:24:37 +1100 Subject: [PATCH 162/171] Stub open command so running tests doesn't keep on launching apps --- src/bonsai/bonsai/bim/module/drawing/operator.py | 1 + src/bonsai/test/bim/bootstrap.py | 1 + 2 files changed, 2 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index db389427e6..2f858a9d9e 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -3165,6 +3165,7 @@ class EditTextPopup(bpy.types.Operator): bpy.ops.bim.disable_editing_text() def execute(self, context): + # TODO: check for possible subtle undo bug here # can't use invoke() because this operator # will be run indirectly by hotkey # so we use execute() and track whether it's the first run of the operator diff --git a/src/bonsai/test/bim/bootstrap.py b/src/bonsai/test/bim/bootstrap.py index c799c74c00..587b8f5a2d 100644 --- a/src/bonsai/test/bim/bootstrap.py +++ b/src/bonsai/test/bim/bootstrap.py @@ -34,6 +34,7 @@ from bonsai.bim.ifc import IfcStore # Monkey-patch webbrowser opening since we want to test headlessly webbrowser.open = lambda x: True +tool.Drawing.open_with_user_command = lambda x, y: True variables = {"cwd": os.getcwd(), "ifc": "IfcStore.get_file()"} From e20e286168092ce52d1ea8da417a60f66c7f50d0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 16 Feb 2026 18:25:54 +1100 Subject: [PATCH 163/171] Revert "feat(drawing): support multiple file selection in Add Reference" This reverts commit cf5ffad9af7dc911d1a3c9a90767fb8c950f7dbc. --- .../bonsai/bim/module/drawing/operator.py | 15 +--- src/bonsai/test/tool/test_drawing.py | 68 ------------------- 2 files changed, 2 insertions(+), 81 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 2f858a9d9e..abc6bbfb5c 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -3094,20 +3094,9 @@ class AddReference(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=True) filename_ext = ".svg" - files: bpy.props.CollectionProperty(type=bpy.types.OperatorFileListElement) - directory: bpy.props.StringProperty(subtype="DIR_PATH") - def _execute(self, context): - # Handle both single and multiple file selection - if self.files: - for file_elem in self.files: - filepath = os.path.join(self.directory, file_elem.name) - uri = tool.Ifc.get_uri(filepath, use_relative_path=self.use_relative_path) - core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=uri) - else: - # Fallback for single file (backward compatibility) - filepath = tool.Ifc.get_uri(self.filepath, use_relative_path=self.use_relative_path) - core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=filepath) + filepath = tool.Ifc.get_uri(self.filepath, use_relative_path=self.use_relative_path) + core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=filepath) class RemoveReference(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/test/tool/test_drawing.py b/src/bonsai/test/tool/test_drawing.py index 532186d7ff..8501b5b9ea 100644 --- a/src/bonsai/test/tool/test_drawing.py +++ b/src/bonsai/test/tool/test_drawing.py @@ -958,71 +958,3 @@ class TestAddReferenceImage(NewFile): uv_node = material_nodes["Texture Coordinate"] assert len(uv_node.outputs["Generated"].links[:]) == 1 - - -class TestAddReference(NewFile): - def test_add_single_reference(self): - """Test adding a single reference file (backward compatibility)""" - bpy.ops.bim.create_project() - ifc_path = Path("test/files/temp/test.ifc").absolute() - bpy.ops.bim.save_project(filepath=str(ifc_path), should_save_as=True) - - # Create a temporary SVG file - svg_path = Path("test/files/temp/reference.svg").absolute() - svg_path.parent.mkdir(parents=True, exist_ok=True) - with open(svg_path, "w") as f: - f.write('') - - try: - # Add single reference - bpy.ops.bim.add_reference(filepath=str(svg_path)) - - # Verify reference was added - ifc = tool.Ifc.get() - references = [doc for doc in ifc.by_type("IfcDocumentInformation") if doc.Scope == "REFERENCE"] - assert len(references) == 1 - assert references[0].Name == "reference" - finally: - # Cleanup - if svg_path.exists(): - svg_path.unlink() - - def test_add_multiple_references(self): - """Test adding multiple reference files at once""" - bpy.ops.bim.create_project() - ifc_path = Path("test/files/temp/test.ifc").absolute() - bpy.ops.bim.save_project(filepath=str(ifc_path), should_save_as=True) - - # Create temporary SVG files - temp_dir = Path("test/files/temp").absolute() - temp_dir.mkdir(parents=True, exist_ok=True) - - svg_files = [] - for i in range(3): - svg_path = temp_dir / f"reference_{i}.svg" - with open(svg_path, "w") as f: - f.write('') - svg_files.append(svg_path) - - try: - # Test by directly calling core.add_document multiple times - # (simulating what the operator does with multiple files) - ifc = tool.Ifc.get() - for svg_file in svg_files: - uri = tool.Ifc.get_uri(str(svg_file), use_relative_path=True) - from bonsai.bim import core - - core.drawing.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=uri) - - # Verify all references were added - references = [doc for doc in ifc.by_type("IfcDocumentInformation") if doc.Scope == "REFERENCE"] - assert len(references) == 3 - - reference_names = {ref.Name for ref in references} - expected_names = {f"reference_{i}" for i in range(3)} - assert reference_names == expected_names - finally: - # Cleanup - for svg_file in svg_files: - if svg_file.exists(): - svg_file.unlink() From 37fe0ad9934a3bd427efa7027f79d5c47f582702 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 17 Feb 2026 11:18:24 +1100 Subject: [PATCH 164/171] Reimplement adding multiple references / schedules cf5ffad9af7dc911d1a3c9a90767fb8c950f7dbc Previously it was implemented inline. This now implements it as a tool.Blender function with tests. Also the previous tests didn't actually run and weren't actually testing any tools despite being in a tool tests. --- .../bonsai/bim/module/drawing/operator.py | 16 ++++++--- src/bonsai/bonsai/tool/blender.py | 10 ++++++ src/bonsai/test/tool/test_blender.py | 34 +++++++++++++++++++ 3 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index abc6bbfb5c..f92f7e0085 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -2896,12 +2896,16 @@ class AddSchedule(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): bl_options = {"REGISTER", "UNDO"} bl_description = "Add an .ods, .xls or .xlsx file as a schedule" + files: bpy.props.CollectionProperty(name="Files", type=bpy.types.OperatorFileListElement) + directory: bpy.props.StringProperty(subtype="DIR_PATH") filter_glob: bpy.props.StringProperty(default="*.ods;*.xls;*.xlsx", options={"HIDDEN"}) use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=True) def _execute(self, context): - filepath = tool.Ifc.get_uri(self.filepath, use_relative_path=self.use_relative_path) - core.add_document(tool.Ifc, tool.Drawing, "SCHEDULE", uri=filepath) + for filepath in tool.Blender.get_selected_files( + self.directory, self.files, use_relative_path=self.use_relative_path + ): + core.add_document(tool.Ifc, tool.Drawing, "SCHEDULE", uri=filepath) class RemoveSchedule(bpy.types.Operator, tool.Ifc.Operator): @@ -3090,13 +3094,17 @@ class AddReference(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): bl_description = "Import a .svg file to the project as a reference" bl_options = {"REGISTER", "UNDO"} + files: bpy.props.CollectionProperty(name="Files", type=bpy.types.OperatorFileListElement) + directory: bpy.props.StringProperty(subtype="DIR_PATH") filter_glob: bpy.props.StringProperty(default="*.svg", options={"HIDDEN"}) use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=True) filename_ext = ".svg" def _execute(self, context): - filepath = tool.Ifc.get_uri(self.filepath, use_relative_path=self.use_relative_path) - core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=filepath) + for filepath in tool.Blender.get_selected_files( + self.directory, self.files, use_relative_path=self.use_relative_path + ): + core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=filepath) class RemoveReference(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index e499f35106..a2a0f09ed8 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -2165,3 +2165,13 @@ class Blender(bonsai.core.tool.Blender): if cls.BLENDER_5: return np.array(mathutils_type) return np.array(mathutils_type, dtype=np.float32) + + @classmethod + def get_selected_files( + cls, directory: str, files: bpy.types.OperatorFileListElement, use_relative_path=False + ) -> list[Path]: + return [ + tool.Ifc.get_uri(Path(directory) / f.name, use_relative_path=use_relative_path) + for f in files + if (Path(directory) / f.name).is_file() + ] diff --git a/src/bonsai/test/tool/test_blender.py b/src/bonsai/test/tool/test_blender.py index 43d04c7c19..97e68b9d08 100644 --- a/src/bonsai/test/tool/test_blender.py +++ b/src/bonsai/test/tool/test_blender.py @@ -24,8 +24,10 @@ import pytest import bonsai.core.tool import bonsai.tool as tool +import tempfile from bonsai.tool.blender import Blender as subject from test.bim.bootstrap import NewFile +from pathlib import Path if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums @@ -110,3 +112,35 @@ class TestBlenderErrorMessageExtraction(NewFile): assert error_reports == [] bpy.utils.unregister_class(OBJECT_OT_test_fail_operator) + + +class TestGetSelectedFiles(NewFile): + def test_get_a_single_file(self) -> None: + with tempfile.NamedTemporaryFile() as f: + file = type("", (object,), {"name": f.name})() + assert subject.get_selected_files(Path(f.name).parent, [file]) == [f.name] + + def test_get_multiple_files(self) -> None: + with tempfile.NamedTemporaryFile() as f: + with tempfile.NamedTemporaryFile() as g: + file = type("", (object,), {"name": f.name})() + file2 = type("", (object,), {"name": g.name})() + assert subject.get_selected_files(Path(f.name).parent, [file, file2]) == [f.name, g.name] + + def test_exclude_directories(self) -> None: + with tempfile.NamedTemporaryFile() as f: + with tempfile.TemporaryDirectory() as d: + file = type("", (object,), {"name": f.name})() + directory = type("", (object,), {"name": d})() + assert subject.get_selected_files(Path(f.name).parent, [file, directory]) == [f.name] + + def test_get_relative_paths(self) -> None: + with tempfile.TemporaryDirectory() as tmp_dir: + base_path = Path(tmp_dir) + with tempfile.NamedTemporaryFile(dir=tmp_dir, suffix=".ifc") as f: + tool.Ifc.set_path(str(f.name)) + with tempfile.NamedTemporaryFile(dir=tmp_dir) as g: + file = type("", (object,), {"name": g.name}) + assert subject.get_selected_files(Path(g.name).parent, [file], use_relative_path=True) == [ + Path(g.name).name + ] From c6b14d14747088be9b350c76d19cf6130a4c7036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Aliste?= Date: Mon, 16 Feb 2026 23:33:48 -0300 Subject: [PATCH 165/171] Fixes snap angle. In my previous commit, I mistakenly believed that there was an API change from snap_angle_increment to snap_angle_increment_3d But since the feature was introduced in blender 4.2 the setting is called snap_angle_increment_3d. --- src/bonsai/bonsai/tool/snap.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index bc35505826..0dc11e86b0 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -118,14 +118,10 @@ class Snap(bonsai.core.tool.Snap): def get_angle_snap_value(cls, context: bpy.types.Context) -> float: """Get the angle snap increment from Blender's tool settings. - Uses snap_angle_increment_3d (Blender 5.0+) or snap_angle_increment (Blender 4.x). - :param context: Blender context :return: Angle snap increment in degrees """ - if bpy.app.version >= (5, 0, 0): - return math.degrees(context.scene.tool_settings.snap_angle_increment_3d) - return math.degrees(context.scene.tool_settings.snap_angle_increment) + return math.degrees(context.scene.tool_settings.snap_angle_increment_3d) @classmethod def get_snap_points_on_raycasted_face(cls, context, event, obj, face_index): From fcc80ad14a66468d3a353124bd4fd3a30e9875a2 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 17 Feb 2026 18:11:13 +1100 Subject: [PATCH 166/171] Simplify add reference image size implementation and fix segfaulting tests Previously, there was a dance between invoke, execute, and draw. This can probably be resolved, but is a high-risk for undo bugs. This simplifies the logic flow to just a traditional _invoke -> _execute. I add a new feature test to at least make sure it does something, and this also fixes the segfault in tool tests as it no longer requires the launching of the file browser. --- .../bonsai/bim/module/drawing/operator.py | 101 +++--------------- src/bonsai/test/bim/feature/drawing.feature | 13 +-- src/bonsai/test/tool/test_drawing.py | 2 +- 3 files changed, 23 insertions(+), 93 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index f92f7e0085..144a687af6 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -3815,91 +3815,14 @@ class AddReferenceImage(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): description="Existing object name to add a style with reference image to. If not provided will create a new object.", options={"SKIP_SAVE"}, ) - - x_length: bpy.props.FloatProperty( - name="X Length", - description="Width of the reference image in project units", - default=1.0, - min=0.001, - soft_min=0.01, - precision=3, - ) - y_length: bpy.props.FloatProperty( - name="Y Length", - description="Height of the reference image in project units", - default=1.0, - min=0.001, - soft_min=0.01, - precision=3, - ) - - show_dimensions_dialog: bpy.props.BoolProperty(default=False, options={"HIDDEN", "SKIP_SAVE"}) + size: bpy.props.FloatProperty(name="Size", description="Size of the reference image", default=1.0, unit="LENGTH") def draw(self, context): - layout = self.layout - - if getattr(self, "show_dimensions_dialog", False): - if tool.Ifc.get(): - length_unit = ifcopenshell.util.unit.get_project_unit(tool.Ifc.get(), "LENGTHUNIT") - if length_unit: - unit_name = ifcopenshell.util.unit.get_full_unit_name(length_unit).lower() - else: - unit_name = "project units" - layout.label(text=f"Set Reference Image Dimensions (in {unit_name}):") - else: - layout.label(text="Set Reference Image Dimensions (in project units):") - layout.separator() - layout.prop(self, "x_length") - layout.prop(self, "y_length") - else: - if Path(tool.Ifc.get_path()).is_file(): - layout.prop(self, "use_relative_path") - else: - self.use_relative_path = False - layout.label(text="Save the .ifc file first ") - layout.label(text="to use relative paths.") - layout.prop(self, "override_existing_image") - layout.prop(self, "use_existing_object_by_name") - - def invoke(self, context, event): - if not getattr(self, "show_dimensions_dialog", False): - context.window_manager.fileselect_add(self) - return {"RUNNING_MODAL"} - else: - return context.window_manager.invoke_props_dialog(self) - - def execute(self, context): - if not getattr(self, "show_dimensions_dialog", False): - abs_path = Path(self.filepath).absolute().resolve() - if self.override_existing_image: - params = {"check_existing": True, "force_reload": True} - else: - params = {"check_existing": False} - - try: - image = load_image(abs_path.name, str(abs_path.parent), **params) - - image_width_px = image.size[0] - image_height_px = image.size[1] - aspect_ratio = image_width_px / image_height_px - - if aspect_ratio >= 1.0: - self.x_length = 1.0 - self.y_length = 1.0 / aspect_ratio - else: - self.x_length = aspect_ratio - self.y_length = 1.0 - - bpy.data.images.remove(image) - - except Exception as e: - self.report({"ERROR"}, f"Failed to load image: {str(e)}") - return {"CANCELLED"} - - self.show_dimensions_dialog = True - return context.window_manager.invoke_props_dialog(self) - - return self._execute(context) + if Path(tool.Ifc.get_path()).is_file(): + self.layout.prop(self, "use_relative_path") + self.layout.prop(self, "override_existing_image") + self.layout.prop(self, "use_existing_object_by_name") + self.layout.prop(self, "size") def _execute(self, context): space = tool.Blender.get_view3d_space() @@ -3920,11 +3843,19 @@ class AddReferenceImage(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): params = {"check_existing": False} image = load_image(abs_path.name, str(abs_path.parent), **params) + aspect_ratio = image.size[0] / image.size[1] + if aspect_ratio >= 1.0: # Landscape + x_length = self.size + y_length = self.size / aspect_ratio + else: + x_length = self.size / aspect_ratio + y_length = self.size + def bm_add_image_plane(mesh): bm = tool.Blender.get_bmesh_for_mesh(mesh, clean=True) unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) - plane_scale = Vector((self.x_length * unit_scale / 2.0, self.y_length * unit_scale / 2.0, 1.0)) + plane_scale = Vector((x_length / 2.0, y_length / 2.0, 1.0)) matrix = Matrix.LocRotScale(None, None, plane_scale) bmesh.ops.create_grid(bm, x_segments=1, y_segments=1, size=1, matrix=matrix, calc_uvs=False) @@ -4028,8 +3959,6 @@ class AddReferenceImage(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): tool.Style.reload_material_from_ifc(material) tool.Geometry.record_object_materials(obj) - return {"FINISHED"} - class ConvertSVGToDXF(bpy.types.Operator): bl_idname = "bim.convert_svg_to_dxf" diff --git a/src/bonsai/test/bim/feature/drawing.feature b/src/bonsai/test/bim/feature/drawing.feature index 6a24168e4b..b7b78e748d 100644 --- a/src/bonsai/test/bim/feature/drawing.feature +++ b/src/bonsai/test/bim/feature/drawing.feature @@ -3,12 +3,6 @@ Feature: Drawing Scenario: Duplicate drawing Given an empty IFC project - And I add a cube - And the object "Cube" is selected - And I look at the "Class" panel - And I set the "Products" property to "IfcElement" - And I set the "Class" property to "IfcWall" - And I click "Assign IFC Class" And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" @@ -315,3 +309,10 @@ Scenario: Create sheet - with a drawing added to it And I click "IMAGE_PLANE" When I click "OUTPUT" Then the file "{ifc_dir}/sheets/A01 - UNTITLED.svg" should contain "IfcWall" + +Scenario: Add reference image + Given an empty IFC project + And I save IFC project + When I press "bim.add_reference_image(filepath='{cwd}/test/files/image.jpg')" + Then the object "IfcAnnotation/image" exists + And the object "IfcAnnotation/image" dimensions are "1.0,0.565,0." diff --git a/src/bonsai/test/tool/test_drawing.py b/src/bonsai/test/tool/test_drawing.py index 8501b5b9ea..b0d2756198 100644 --- a/src/bonsai/test/tool/test_drawing.py +++ b/src/bonsai/test/tool/test_drawing.py @@ -938,7 +938,7 @@ class TestAddReferenceImage(NewFile): obj = bpy.data.objects["IfcAnnotation/image"] assert obj is not None - assert tool.Cad.are_vectors_equal(obj.dimensions, Vector((3.53982, 2.0, 0.0))) + assert tool.Cad.are_vectors_equal(obj.dimensions, Vector((1.0, 0.565, 0.0))) material = obj.active_material assert material From 8023a992da750b44fd738fec6218e3c440e820fb Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 17 Feb 2026 18:16:20 +1100 Subject: [PATCH 167/171] Fix tests where panel name and tab panel name is identical For now probably just easier to skip tabs. They are just containers and not worth testing. Famous last words :) --- src/bonsai/test/bim/test_feature.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bonsai/test/bim/test_feature.py b/src/bonsai/test/bim/test_feature.py index a6d93c0006..262dce65ed 100644 --- a/src/bonsai/test/bim/test_feature.py +++ b/src/bonsai/test/bim/test_feature.py @@ -280,6 +280,8 @@ def create_ui_name_cache(): try: panel_type = getattr(bpy.types, bl_idname) if panel_type.bl_rna.base.name == "Panel": + if "_tab_" in panel_type.bl_idname: + continue # Tab panels are just groups and not relevant in testing ui_name_cache[panel_type.bl_label] = panel_type.bl_idname elif panel_type.bl_rna.base.name == "Operator": ui_name_cache[panel_type.bl_label] = bl_idname From ed500d58ba3cb093bc56beacef62eed5514b4f2f Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 17 Feb 2026 18:16:33 +1100 Subject: [PATCH 168/171] For consistency, maxfail=1 for module tool tests --- src/bonsai/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 6b4704b7b3..38fbc61355 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -371,7 +371,7 @@ test-tool: ifndef MODULE pytest test/tool else - pytest test/tool/test_$(MODULE).py + pytest test/tool/test_$(MODULE).py --maxfail=1 endif # Reregistering test is not added to the standard test suite because during unregister From 291e815770a9d6d3aa0d3c1bde13f1d14f3b3a7f Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Fri, 13 Feb 2026 18:24:46 +0000 Subject: [PATCH 169/171] Add AGENTS.md contributor guide Guidelines for external contributors using AI coding tools, covering licensing, AI disclosure requirements, PR scope, commit style, code formatting, and testing expectations. Generated with the assistance of an AI coding tool. --- AGENTS.md | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..fd0e305245 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,153 @@ + + +# AGENTS.md + +Guidelines for AI coding agents contributing to IfcOpenShell. This file is +intended to be read by all AI agents regardless of platform (Claude Code, +Copilot, Cursor, etc.) in addition to any tool-specific configuration files. + +Human contributors using AI tools should also read this document carefully, +as they are responsible for ensuring their contributions comply with these +guidelines. + +## Project Overview + +IfcOpenShell is an open source library for working with Industry Foundation +Classes (IFC). It provides C++ and Python APIs, geometry processing, and an +ecosystem of tools including IfcConvert and the Bonsai Blender add-on. + +## Licensing + +All contributions must be compatible with the project's licensing: + +- **Library code** (everything except Bonsai): **LGPL-3.0-or-later** +- **Bonsai** (`src/bonsai/`): **GPL-3.0-or-later** + +There is no Contributor License Agreement (CLA). By submitting a pull request, +you agree that your contribution is licensed under the applicable license above. + +## Indicating AI-Generated Code + +Contributors must clearly indicate when code has been generated or +substantially written by an AI tool. + +### Commits + +Commits that modify existing code must include a note in the **body** of the +commit message (not the subject line) indicating that the change was +AI-generated. For example: + +``` +Fix off-by-one error in element iteration + +The loop termination condition was incorrect when processing +IfcRelAggregates relationships. + +Generated with the assistance of an AI coding tool. +``` + +### New Files + +New files that are AI-generated must include a comment near the top of the +file indicating this. Use the appropriate comment syntax for the language: + +```python +# This file was generated with the assistance of an AI coding tool. +``` + +```cpp +// This file was generated with the assistance of an AI coding tool. +``` + +### Pull Requests + +Pull requests containing AI-generated code must indicate in the PR description +which parts of the contribution are AI-generated. If the entire PR is +AI-generated, state that clearly. If only specific commits or files are +AI-generated, identify them. + +## Pull Request Guidelines + +### Scope and Size + +- Each pull request should address a **single issue or feature**. +- Do not mix unrelated changes (e.g., bug fixes with refactoring or style + changes) in the same PR. +- Large pull requests should be broken down into **multiple small, standalone + commits** that are each easy to review independently. Rewrite commit history + for this purpose if necessary. +- PRs that are minimal, focused solutions to a specific problem are much more + likely to be accepted. + +### What to Avoid + +- **Over-engineering**: Do not add features, abstractions, or configurability + beyond what is needed to solve the immediate problem. +- **Scope creep**: Do not make changes to files or code that are not directly + related to the task at hand. +- **Unnecessary additions**: Do not add docstrings, comments, type annotations, + or error handling to code you did not otherwise need to change. +- **Cosmetic changes**: Do not reformat, rename, or reorganize code that is + unrelated to your change. + +## Commit Messages + +- The **subject line** must be **50 characters or less**. +- Use the **imperative mood** (e.g., "Fix crash in geometry kernel", not + "Fixed crash" or "Fixes crash"). +- A commit message can be a single line if the purpose is obvious from the + subject alone. +- Otherwise, add a blank line after the subject followed by a short explanation + of a few lines in the body. + +## Code Style + +### Python + +- **Line length**: 120 characters +- **Formatter**: black +- **Linter**: ruff +- Configuration is in `pyproject.toml` + +### C++ + +- **Standard**: C++17 minimum +- **Formatter**: clang-format (configuration in `.clang-format`) +- **Linter**: clang-tidy (configuration in `.clang-tidy`) + +Run linters and formatters **before submitting** your pull request. Do not rely +on CI to catch formatting issues. + +## Testing + +- Pull requests with test coverage are **much more likely to be merged**. +- If tests are appropriate and feasible for your change, they should be + included. +- Tests are not required for every change (e.g., documentation-only changes), + but the expectation is that testable code changes come with tests. +- Python tests use **pytest** and are located in `test/` or `tests/` directories + within each package under `src/`. +- Run the existing test suite for the package you modified before submitting. + +## Architecture Quick Reference + +### Directory Structure + +- `src/ifcparse/` — C++ IFC file parsing +- `src/ifcgeom/` — C++ geometry processing (OpenCASCADE and CGAL kernels) +- `src/serializers/` — Output format serializers (glTF, Collada, SVG, etc.) +- `src/ifcwrap/` — SWIG Python bindings +- `src/ifcconvert/` — CLI conversion tool +- `src/ifcopenshell-python/` — Python API (`ifcopenshell` package) +- `src/bonsai/` — Blender add-on (GPL-3.0-or-later) +- `src/ifctester/` — IDS model auditing +- `src/ifcpatch/` — IFC file manipulation scripts +- `src/ifcdiff/` — IFC model comparison +- `src/ifcclash/` — Clash detection +- `src/ifccsv/` — Schedule import/export + +### IFC Schema Versions + +The library supports IFC2x3 TC1, IFC4 Add2 TC1, IFC4x1, IFC4x2, and +IFC4x3 Add2. Schema-specific code is compiled conditionally. Be aware of +which schema versions your change affects. From a5461c074849f81568f215a49a1e460f97a2e95e Mon Sep 17 00:00:00 2001 From: Sebastian Schilling Date: Thu, 12 Feb 2026 12:04:36 +0100 Subject: [PATCH 170/171] buildingSMART Data Dictionary module: added textfield to change data dictionary url --- src/bonsai/bonsai/bim/module/bsdd/__init__.py | 1 + src/bonsai/bonsai/bim/module/bsdd/prop.py | 19 +++++++++++- src/bonsai/bonsai/bim/module/bsdd/ui.py | 29 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/bsdd/__init__.py b/src/bonsai/bonsai/bim/module/bsdd/__init__.py index 25d6f501f0..eecc5880fa 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/__init__.py +++ b/src/bonsai/bonsai/bim/module/bsdd/__init__.py @@ -37,6 +37,7 @@ classes = ( ui.BIM_UL_bsdd_classes, ui.BIM_UL_bsdd_properties, ui.BIM_PT_bsdd, + ui.BIM_OT_bsdd_reset_baseurl, ) diff --git a/src/bonsai/bonsai/bim/module/bsdd/prop.py b/src/bonsai/bonsai/bim/module/bsdd/prop.py index 347cdab1b2..b7f1e57569 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/prop.py +++ b/src/bonsai/bonsai/bim/module/bsdd/prop.py @@ -19,6 +19,7 @@ from typing import TYPE_CHECKING, Literal, Union import bpy +import bsdd from bpy.props import ( BoolProperty, CollectionProperty, @@ -73,6 +74,14 @@ def update_active_class_index(self: "BIMBSDDProperties", context: bpy.types.Cont BSDDData.data["active_dictionary"] = BSDDData.active_dictionary() +def update_bsdd_baseurl(self: "BIMBSDDProperties", context: bpy.types.Context) -> None: + try: + tool.Bsdd.client = bsdd.Client() + if hasattr(tool.Bsdd.client, "baseurl"): + tool.Bsdd.client.baseurl = self.bsdd_baseurl + except Exception: + pass + class BSDDDictionary(PropertyGroup): uri: StringProperty(name="URI") default_language_code: StringProperty(name="Language") @@ -164,6 +173,13 @@ class BIMBSDDProperties(PropertyGroup): ) classification_psets: CollectionProperty(name="Classification Psets", type=BSDDPset) + bsdd_baseurl: StringProperty( + name="Other URL:", + description="URL from another Dictionary with bSDD API", + default="", + update=update_bsdd_baseurl, + ) + if TYPE_CHECKING: active_dictionary: str active_dictionary: str @@ -182,7 +198,8 @@ class BIMBSDDProperties(PropertyGroup): should_filter_ifc_class: bool use_only_ifc_properties: bool classification_psets: bpy.types.bpy_prop_collection_idprop[BSDDPset] - + bsdd_baseurl: str + @property def active_class(self) -> Union[BSDDClassification, None]: return tool.Blender.get_active_uilist_element(self.classes, self.active_class_index) diff --git a/src/bonsai/bonsai/bim/module/bsdd/ui.py b/src/bonsai/bonsai/bim/module/bsdd/ui.py index c6966c01d8..a44be23664 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/ui.py +++ b/src/bonsai/bonsai/bim/module/bsdd/ui.py @@ -24,6 +24,7 @@ import bpy from bpy.types import Panel, UIList import bonsai.tool as tool +import bsdd from bonsai.bim.module.bsdd.data import BSDDData if TYPE_CHECKING: @@ -50,6 +51,17 @@ class BIM_PT_bsdd(Panel): props = tool.Bsdd.get_bsdd_props() assert self.layout layout = self.layout + try: + if not props.bsdd_baseurl: + try: + props.bsdd_baseurl = tool.Bsdd.client.baseurl + except Exception: + props.bsdd_baseurl = bsdd.Client().baseurl + except Exception: + pass + row = layout.row(align=True) + row.prop(props, "bsdd_baseurl", text="Other URL", emboss=True) + row.operator("bim.bsdd_reset_baseurl", icon="LOOP_BACK", text="") if len(props.dictionaries): row = self.layout.row() row.operator("bim.load_bsdd_dictionaries", icon="FILE_REFRESH") @@ -83,6 +95,23 @@ class BIM_PT_bsdd(Panel): row = self.layout.row() row.operator("bim.load_bsdd_dictionaries") +class BIM_OT_bsdd_reset_baseurl(bpy.types.Operator): + bl_idname = "bim.bsdd_reset_baseurl" + bl_label = "Reset bSDD Base URL" + bl_description = "Resets the bSDD base URL to the default value" + + def execute(self, context): + import bsdd + props = tool.Bsdd.get_bsdd_props() + props.bsdd_baseurl = "" + try: + tool.Bsdd.client = bsdd.Client() + if hasattr(tool.Bsdd.client, "baseurl"): + tool.Bsdd.client.baseurl = default_url + except Exception: + pass + self.report({'INFO'}, "bSDD base URL reset.") + return {'FINISHED'} class BIM_UL_bsdd_dictionaries(UIList): def draw_item( From 418d410b5c0e0a5d775249f12d0be611bdb2a4df Mon Sep 17 00:00:00 2001 From: Sebastian Schilling Date: Tue, 17 Feb 2026 15:10:13 +0100 Subject: [PATCH 171/171] moved change of bsdd baseurl change to addon settings --- src/bonsai/bonsai/bim/module/bsdd/__init__.py | 1 - src/bonsai/bonsai/bim/module/bsdd/prop.py | 17 ----------- src/bonsai/bonsai/bim/module/bsdd/ui.py | 29 ------------------- src/bonsai/bonsai/bim/ui.py | 5 ++++ src/bonsai/bonsai/tool/bsdd.py | 4 +++ 5 files changed, 9 insertions(+), 47 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/bsdd/__init__.py b/src/bonsai/bonsai/bim/module/bsdd/__init__.py index eecc5880fa..25d6f501f0 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/__init__.py +++ b/src/bonsai/bonsai/bim/module/bsdd/__init__.py @@ -37,7 +37,6 @@ classes = ( ui.BIM_UL_bsdd_classes, ui.BIM_UL_bsdd_properties, ui.BIM_PT_bsdd, - ui.BIM_OT_bsdd_reset_baseurl, ) diff --git a/src/bonsai/bonsai/bim/module/bsdd/prop.py b/src/bonsai/bonsai/bim/module/bsdd/prop.py index b7f1e57569..efd8db46db 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/prop.py +++ b/src/bonsai/bonsai/bim/module/bsdd/prop.py @@ -19,7 +19,6 @@ from typing import TYPE_CHECKING, Literal, Union import bpy -import bsdd from bpy.props import ( BoolProperty, CollectionProperty, @@ -74,14 +73,6 @@ def update_active_class_index(self: "BIMBSDDProperties", context: bpy.types.Cont BSDDData.data["active_dictionary"] = BSDDData.active_dictionary() -def update_bsdd_baseurl(self: "BIMBSDDProperties", context: bpy.types.Context) -> None: - try: - tool.Bsdd.client = bsdd.Client() - if hasattr(tool.Bsdd.client, "baseurl"): - tool.Bsdd.client.baseurl = self.bsdd_baseurl - except Exception: - pass - class BSDDDictionary(PropertyGroup): uri: StringProperty(name="URI") default_language_code: StringProperty(name="Language") @@ -172,13 +163,6 @@ class BIMBSDDProperties(PropertyGroup): default=False, ) classification_psets: CollectionProperty(name="Classification Psets", type=BSDDPset) - - bsdd_baseurl: StringProperty( - name="Other URL:", - description="URL from another Dictionary with bSDD API", - default="", - update=update_bsdd_baseurl, - ) if TYPE_CHECKING: active_dictionary: str @@ -198,7 +182,6 @@ class BIMBSDDProperties(PropertyGroup): should_filter_ifc_class: bool use_only_ifc_properties: bool classification_psets: bpy.types.bpy_prop_collection_idprop[BSDDPset] - bsdd_baseurl: str @property def active_class(self) -> Union[BSDDClassification, None]: diff --git a/src/bonsai/bonsai/bim/module/bsdd/ui.py b/src/bonsai/bonsai/bim/module/bsdd/ui.py index a44be23664..f239eb41cf 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/ui.py +++ b/src/bonsai/bonsai/bim/module/bsdd/ui.py @@ -51,17 +51,6 @@ class BIM_PT_bsdd(Panel): props = tool.Bsdd.get_bsdd_props() assert self.layout layout = self.layout - try: - if not props.bsdd_baseurl: - try: - props.bsdd_baseurl = tool.Bsdd.client.baseurl - except Exception: - props.bsdd_baseurl = bsdd.Client().baseurl - except Exception: - pass - row = layout.row(align=True) - row.prop(props, "bsdd_baseurl", text="Other URL", emboss=True) - row.operator("bim.bsdd_reset_baseurl", icon="LOOP_BACK", text="") if len(props.dictionaries): row = self.layout.row() row.operator("bim.load_bsdd_dictionaries", icon="FILE_REFRESH") @@ -95,24 +84,6 @@ class BIM_PT_bsdd(Panel): row = self.layout.row() row.operator("bim.load_bsdd_dictionaries") -class BIM_OT_bsdd_reset_baseurl(bpy.types.Operator): - bl_idname = "bim.bsdd_reset_baseurl" - bl_label = "Reset bSDD Base URL" - bl_description = "Resets the bSDD base URL to the default value" - - def execute(self, context): - import bsdd - props = tool.Bsdd.get_bsdd_props() - props.bsdd_baseurl = "" - try: - tool.Bsdd.client = bsdd.Client() - if hasattr(tool.Bsdd.client, "baseurl"): - tool.Bsdd.client.baseurl = default_url - except Exception: - pass - self.report({'INFO'}, "bSDD base URL reset.") - return {'FINISHED'} - class BIM_UL_bsdd_dictionaries(UIList): def draw_item( self, diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index 32240a3fee..30ce93f076 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -660,6 +660,10 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): bsdd_load_test_dictionaries: BoolProperty( name="Load Test Dictionaries", description="Load dictionaries that are for testing only", default=False ) + bsdd_baseurl: StringProperty( + name="bSDD API Base URL", description="Base URL for data dictionary API requests, e.g. https://api.bsdd.buildingsmart.org/api/", + default="https://api.bsdd.buildingsmart.org/api/", + ) should_disable_undo_on_save: BoolProperty( name="Disable Undo When Saving (Faster saves, no undo for you!)", default=False ) @@ -972,6 +976,7 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): layout.prop(self, "bsdd_load_preview_dictionaries") layout.prop(self, "bsdd_load_inactive_dictionaries") layout.prop(self, "bsdd_load_test_dictionaries") + layout.prop(self, "bsdd_baseurl") def draw_extras_settings(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: layout.prop(self, "container_hide_show_isolate") diff --git a/src/bonsai/bonsai/tool/bsdd.py b/src/bonsai/bonsai/tool/bsdd.py index dc42708867..47c948abcc 100644 --- a/src/bonsai/bonsai/tool/bsdd.py +++ b/src/bonsai/bonsai/tool/bsdd.py @@ -123,6 +123,10 @@ class Bsdd(bonsai.core.tool.Bsdd): @classmethod def get_dictionaries(cls) -> list[bsdd.DictionaryContractV1]: prefs = tool.Blender.get_addon_preferences() + baseurl = getattr(prefs, "bsdd_baseurl", "https://api.bsdd.buildingsmart.org/api/") + cls.client = bsdd.Client() + if hasattr(cls.client, "baseurl"): + cls.client.baseurl = baseurl response = cls.client.get_dictionary(include_test_dictionaries=prefs.bsdd_load_test_dictionaries) dicts = response.get("dictionaries") or [] statuses = ["Active"]