New feature to toggle default project unit assignment

This commit is contained in:
Dion Moult
2021-08-13 14:58:25 +10:00
parent 2a6d6cfdbf
commit 671f1ab9cf
8 changed files with 77 additions and 20 deletions
@@ -24,6 +24,9 @@ class Data:
return
for unit in unit_assignment[0].Units:
cls.unit_assignment.append(unit.id())
for unit in (
cls.file.by_type("IfcDerivedUnit") + cls.file.by_type("IfcNamedUnit") + cls.file.by_type("IfcMonetaryUnit")
):
cls.load_unit(unit)
cls.is_loaded = True
@@ -0,0 +1,17 @@
class Usecase:
def __init__(self, file, **settings):
self.file = file
self.settings = {"units": None}
for key, value in settings.items():
self.settings[key] = value
def execute(self):
unit_assignment = self.file.by_type("IfcUnitAssignment")
if not unit_assignment:
return
unit_assignment = unit_assignment[0]
units = set(unit_assignment.Units or [])
units = units - set(self.settings["units"])
if units:
unit_assignment.Units = list(units)
return unit_assignment