Merge commit '1187ad5feaf56ccb48c549a9e52147d2604d8601' into v0.7.0

This commit is contained in:
Dion Moult
2021-09-23 09:46:09 +10:00
10 changed files with 319 additions and 146 deletions
@@ -63,8 +63,7 @@ class Usecase:
for inverse in self.file.get_inverse(added_context):
ifcopenshell.util.element.replace_attribute(inverse, added_context, equivalent_existing_context)
for added_context in added_contexts:
if added_context.is_a() == "IfcGeometricRepresentationContext":
ifcopenshell.util.element.remove_deep(self.file, added_context)
ifcopenshell.util.element.remove_deep(self.file, added_context)
return element
def add_element(self, element):
@@ -19,7 +19,7 @@ class Usecase:
self.file,
ifc_class=self.settings["ifc_class"],
predefined_type=self.settings["predefined_type"],
name=self.settings["name"] or "Unammed",
name=self.settings["name"] or "Unnamed",
)
# 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
@@ -126,8 +126,10 @@ class Data:
del data["OwnerHistory"]
data["HasAssignmentsWorkCalendar"] = []
data["RelatedObjects"] = []
data["RelatingProducts"] = []
data["OperatesOn"] = []
data["Inputs"] = []
data["Controls"] = []
data["Outputs"] = []
data["Resources"] = []
data["IsPredecessorTo"] = []
data["IsSuccessorFrom"] = []
if task.TaskTime:
@@ -136,11 +138,13 @@ class Data:
[data["RelatedObjects"].append(o.id()) for o in rel.RelatedObjects if o.is_a("IfcTask")]
data["Nests"] = [r.RelatingObject.id() for r in task.Nests or []]
[
data["RelatingProducts"].append(r.RelatingProduct.id())
data["Outputs"].append(r.RelatingProduct.id())
for r in task.HasAssignments
if r.is_a("IfcRelAssignsToProduct")
]
[data["OperatesOn"].extend([o.id() for o in r.RelatedObjects]) for r in task.OperatesOn]
[data["Resources"].extend([o.id() for o in r.RelatedObjects if o.is_a("IfcResource")]) for r in task.OperatesOn]
[data["Controls"].extend([o.id() for o in r.RelatedObjects if o.is_a("IfcControl")]) for r in task.OperatesOn]
[data["Inputs"].extend([o.id() for o in r.RelatedObjects if o.is_a("IfcProduct")]) for r in task.OperatesOn]
[data["IsPredecessorTo"].append(rel.id()) for rel in task.IsPredecessorTo or []]
[data["IsSuccessorFrom"].append(rel.id()) for rel in task.IsSuccessorFrom or []]
[