diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 2efcccd4ba..2582db14be 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -393,6 +393,7 @@ class OverrideDelete(bpy.types.Operator): elif getattr(element, "HasOpenings", None): for rel in element.HasOpenings: self.delete_opening_element(rel.RelatedOpeningElement) + IfcStore.deleted_ids.add(element.id()) bpy.data.objects.remove(obj) return {"FINISHED"} diff --git a/src/blenderbim/test/files/BrickStub.ttl b/src/blenderbim/test/files/BrickStub.ttl new file mode 100644 index 0000000000..883ec92353 --- /dev/null +++ b/src/blenderbim/test/files/BrickStub.ttl @@ -0,0 +1,24 @@ +@prefix brick: . +@prefix bsh: . +@prefix dcterms: . +@prefix owl: . +@prefix qudt: . +@prefix qudtqk: . +@prefix rdf: . +@prefix rdfs: . +@prefix sdo: . +@prefix sh: . +@prefix skos: . +@prefix sosa: . +@prefix tag: . +@prefix unit: . +@prefix vcard: . +@prefix xsd: . + +brick:Class a owl:Class . + +brick:Location a owl:Class ; + rdfs:subClassOf brick:Class . + +brick:Building a owl:Class ; + rdfs:subClassOf brick:Class, brick:Location . diff --git a/src/blenderbim/test/tool/test_brick.py b/src/blenderbim/test/tool/test_brick.py index 02420f571e..0a6c1b9274 100644 --- a/src/blenderbim/test/tool/test_brick.py +++ b/src/blenderbim/test/tool/test_brick.py @@ -18,6 +18,7 @@ import os import bpy +import brickschema import ifcopenshell import blenderbim.core.tool import blenderbim.tool as tool @@ -70,13 +71,13 @@ class TestImportBrickClasses(NewFile): subject.import_brick_classes("Class") assert len(bpy.context.scene.BIMBrickProperties.bricks) == 2 brick = bpy.context.scene.BIMBrickProperties.bricks[0] + assert brick.name == "Building" + assert brick.uri == "https://brickschema.org/schema/Brick#Building" + assert brick.total_items == 1 + brick = bpy.context.scene.BIMBrickProperties.bricks[1] assert brick.name == "Location" assert brick.uri == "https://brickschema.org/schema/Brick#Location" - assert brick.total_items == 7 - brick = bpy.context.scene.BIMBrickProperties.bricks[1] - assert brick.name == "Measurable" - assert brick.uri == "https://brickschema.org/schema/Brick#Measurable" - assert brick.total_items == 142 + assert brick.total_items == 1 class TestImportBrickItems(NewFile): @@ -92,6 +93,13 @@ class TestImportBrickItems(NewFile): class TestLoadBrickFile(NewFile): def test_run(self): + # We stub the schema to make tests run faster + BrickStore.schema = brickschema.Graph() + cwd = os.path.dirname(os.path.realpath(__file__)) + schema_path = os.path.join(cwd, "..", "files", "BrickStub.ttl") + BrickStore.schema.load_file(schema_path) + + # This is the actual test cwd = os.path.dirname(os.path.realpath(__file__)) filepath = os.path.join(cwd, "..", "files", "spaces.ttl") subject.load_brick_file(filepath)