From d2e421382bdbea3c7be969e65e2fbf5dd8091a7c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 29 Jul 2021 20:08:44 +1000 Subject: [PATCH] Minor fix --- src/blenderbim/blenderbim/bim/export_ifc.py | 4 ++-- src/blenderbim/blenderbim/bim/import_ifc.py | 3 ++- src/blenderbim/generate_demo_library.py | 22 ++++++++++++--------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/export_ifc.py b/src/blenderbim/blenderbim/bim/export_ifc.py index 805e126158..4e9f75f83b 100644 --- a/src/blenderbim/blenderbim/bim/export_ifc.py +++ b/src/blenderbim/blenderbim/bim/export_ifc.py @@ -67,9 +67,9 @@ class IfcExporter: to_delete = [] for ifc_definition_id, obj in IfcStore.id_map.items(): - if isinstance(obj, bpy.types.Material): - continue try: + if isinstance(obj, bpy.types.Material): + continue self.sync_object_placement(obj) self.sync_object_container(ifc_definition_id, obj) except ReferenceError: diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 673c3ba81f..4741c5d134 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -594,7 +594,8 @@ class IfcImporter: ) ) checkpoint = time.time() - self.update_progress(((total_created / approx_total_products) * progress_range) + start_progress) + if approx_total_products: + self.update_progress(((total_created / approx_total_products) * progress_range) + start_progress) shape = iterator.get() if shape: product = self.file.by_id(shape.guid) diff --git a/src/blenderbim/generate_demo_library.py b/src/blenderbim/generate_demo_library.py index 3babcd4184..610af81587 100644 --- a/src/blenderbim/generate_demo_library.py +++ b/src/blenderbim/generate_demo_library.py @@ -12,10 +12,14 @@ class LibraryGenerator: ifcopenshell.api.run("unit.assign_unit", self.file, length={"is_metric": True, "raw": "METERS"}) self.material = ifcopenshell.api.run("material.add_material", self.file, name="Unknown") - self.create_wall_type("DEMO50", 0.05) - self.create_wall_type("DEMO100", 0.1) - self.create_wall_type("DEMO200", 0.2) - self.create_wall_type("DEMO300", 0.3) + + self.create_layer_type("IfcWallType", "DEMO50", 0.05) + self.create_layer_type("IfcWallType", "DEMO100", 0.1) + self.create_layer_type("IfcWallType", "DEMO200", 0.2) + self.create_layer_type("IfcWallType", "DEMO300", 0.3) + + self.create_layer_type("IfcSlabType", "DEMO150", 0.2) + self.create_layer_type("IfcSlabType", "DEMO250", 0.3) profile = self.file.create_entity("IfcRectangleProfileDef", ProfileType="AREA", XDim=0.5, YDim=0.6) self.create_profile_type("IfcColumnType", "DEMO1", profile) @@ -60,13 +64,13 @@ class LibraryGenerator: self.file.write("blenderbim-demo-library.ifc") - def create_wall_type(self, name, thickness): - wall = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcWallType", name=name) - ifcopenshell.api.run("material.assign_material", self.file, product=wall, type="IfcMaterialLayerSet") - layer_set = ifcopenshell.util.element.get_material(wall) + def create_layer_type(self, ifc_class, name, thickness): + element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) + ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialLayerSet") + layer_set = ifcopenshell.util.element.get_material(element) layer = ifcopenshell.api.run("material.add_layer", self.file, layer_set=layer_set, material=self.material) layer.LayerThickness = thickness - ifcopenshell.api.run("project.assign_declaration", self.file, definition=wall, relating_context=self.project) + ifcopenshell.api.run("project.assign_declaration", self.file, definition=element, relating_context=self.project) def create_profile_type(self, ifc_class, name, profile): element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name)