Feature to enable assigning Construction Resources to Tasks

This commit is contained in:
bosonprojets
2021-08-09 03:13:26 +01:00
parent a83952cec2
commit 6899f9fa8f
6 changed files with 125 additions and 4 deletions
@@ -19,7 +19,7 @@ class Usecase:
self.file,
ifc_class=self.settings["ifc_class"],
predefined_type=self.settings["predefined_type"],
name=self.settings["name"],
name=self.settings["name"] or "Unammed",
)
# TODO: this is an ambiguity by buildingSMART: Can we nest an IfcCrewResource under an IfcCrewResource ?
# https://forums.buildingsmart.org/t/what-are-allowed-to-be-root-level-construction-resources/3550
@@ -4,20 +4,31 @@ class Data:
@classmethod
def purge(cls):
cls.is_loaded = False
cls.resources = {}
@classmethod
def load(cls, file):
cls._file = file
if not cls._file:
return
cls.load_resources()
cls.is_loaded=True
@classmethod
def load_resources(cls):
cls.resources = {}
for resource in file.by_type("IfcResource"):
for resource in cls._file.by_type("IfcResource"):
data = resource.get_info()
del data["OwnerHistory"]
data["IsNestedBy"] = []
for rel in resource.IsNestedBy:
[data["IsNestedBy"].append(o.id()) for o in rel.RelatedObjects]
data["Nests"] = []
for rel in resource.Nests:
[data["Nests"].append(rel.RelatingObject.id())]
data["ResourceOf"] = []
for rel in resource.ResourceOf:
[data["ResourceOf"].append(o.id()) for o in rel.RelatedObjects]
data["HasContext"] = resource.HasContext[0].RelatingContext.id() if resource.HasContext else None
cls.resources[resource.id()] = data
cls.is_loaded=True