Add schema caching to Brick schema loading.

This commit is contained in:
Dion Moult
2021-11-05 09:19:42 +11:00
parent 2b710ffbde
commit 04449d08e8
6 changed files with 98 additions and 610 deletions
+12 -16
View File
@@ -61,43 +61,39 @@ class TestClearProject(NewFile):
class TestGetItemClass(NewFile):
def test_run(self):
TestLoadBrickFile().test_run()
assert subject.get_item_class("http://buildsys.org/ontologies/bldg#chiller") == "Chiller"
assert subject.get_item_class("ex:#floor") == "Floor"
class TestImportBrickClasses(NewFile):
def test_run(self):
TestLoadBrickFile().test_run()
subject.import_brick_classes("Class")
assert len(bpy.context.scene.BIMBrickProperties.bricks) == 4
assert len(bpy.context.scene.BIMBrickProperties.bricks) == 2
brick = bpy.context.scene.BIMBrickProperties.bricks[0]
assert brick.name == "Equipment"
assert brick.uri == "https://brickschema.org/schema/Brick#Equipment"
assert brick.total_items == 20
brick = bpy.context.scene.BIMBrickProperties.bricks[1]
assert brick.name == "Location"
assert brick.uri == "https://brickschema.org/schema/Brick#Location"
assert brick.total_items == 18
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
class TestImportBrickItems(NewFile):
def test_run(self):
TestLoadBrickFile().test_run()
subject.import_brick_items("Room")
assert len(bpy.context.scene.BIMBrickProperties.bricks) == 8
subject.import_brick_items("Building")
assert len(bpy.context.scene.BIMBrickProperties.bricks) == 1
brick = bpy.context.scene.BIMBrickProperties.bricks[0]
assert brick.name == "RM100_room"
assert brick.uri == "http://buildsys.org/ontologies/bldg#RM100_room"
assert brick.total_items == 0
brick = bpy.context.scene.BIMBrickProperties.bricks[1]
assert brick.name == "RM103_room"
assert brick.uri == "http://buildsys.org/ontologies/bldg#RM103_room"
assert brick.name == "bldg"
assert brick.uri == "ex:#bldg"
assert brick.total_items == 0
class TestLoadBrickFile(NewFile):
def test_run(self):
cwd = os.path.dirname(os.path.realpath(__file__))
filepath = os.path.join(cwd, "..", "files", "building.ttl")
filepath = os.path.join(cwd, "..", "files", "spaces.ttl")
subject.load_brick_file(filepath)
assert BrickStore.graph