2021-07-22 17:40:50 +10:00
|
|
|
class Data:
|
|
|
|
|
is_loaded = False
|
|
|
|
|
products = {}
|
|
|
|
|
systems = {}
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def purge(cls):
|
|
|
|
|
cls.is_loaded = False
|
|
|
|
|
cls.products = {}
|
|
|
|
|
cls.systems = {}
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def load(cls, file):
|
|
|
|
|
cls.products = {}
|
|
|
|
|
cls.systems = {}
|
|
|
|
|
for system in file.by_type("IfcSystem", include_subtypes=False):
|
|
|
|
|
if system.IsGroupedBy:
|
|
|
|
|
for rel in system.IsGroupedBy:
|
|
|
|
|
for product in rel.RelatedObjects:
|
|
|
|
|
cls.products.setdefault(product.id(), []).append(system.id())
|
|
|
|
|
data = system.get_info()
|
|
|
|
|
del data["OwnerHistory"]
|
|
|
|
|
cls.systems[system.id()] = data
|
2021-09-09 21:27:23 +10:00
|
|
|
cls.is_loaded = True
|