You can now choose between lightweight and full classifications

This commit is contained in:
Dion Moult
2022-05-11 15:19:31 +10:00
parent 8aa38917eb
commit 9671df8491
@@ -27,6 +27,7 @@ class Usecase:
"product": None, "product": None,
"reference": None, "reference": None,
"classification": None, "classification": None,
"is_lightweight": True,
} }
for key, value in settings.items(): for key, value in settings.items():
self.settings[key] = value self.settings[key] = value
@@ -57,12 +58,13 @@ class Usecase:
return return
migrator = ifcopenshell.util.schema.Migrator() migrator = ifcopenshell.util.schema.Migrator()
# This removal patch is to support a lightweight classification if self.settings["is_lightweight"]:
old_referenced_source = self.settings["reference"].ReferencedSource old_referenced_source = self.settings["reference"].ReferencedSource
self.settings["reference"].ReferencedSource = None self.settings["reference"].ReferencedSource = None
relating_classification = migrator.migrate(self.settings["reference"], self.file) relating_classification = migrator.migrate(self.settings["reference"], self.file)
relating_classification.ReferencedSource = self.settings["classification"] if self.settings["is_lightweight"]:
self.settings["reference"].ReferencedSource = old_referenced_source relating_classification.ReferencedSource = self.settings["classification"]
self.settings["reference"].ReferencedSource = old_referenced_source
self.file.create_entity( self.file.create_entity(
"IfcRelAssociatesClassification", "IfcRelAssociatesClassification",
**{ **{