mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-10-02 13:04:49 +00:00
Cost quantities that are counting that have controlled products now automatically count the number of products for convenience
This commit is contained in:
@@ -26,9 +26,9 @@ class Usecase:
|
|||||||
controls = self.settings["relating_control"].Controls[0]
|
controls = self.settings["relating_control"].Controls[0]
|
||||||
|
|
||||||
if controls:
|
if controls:
|
||||||
related_objects = list(controls.RelatedObjects)
|
related_objects = set(controls.RelatedObjects)
|
||||||
related_objects.append(self.settings["related_object"])
|
related_objects.add(self.settings["related_object"])
|
||||||
controls.RelatedObjects = related_objects
|
controls.RelatedObjects = list(related_objects)
|
||||||
ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": controls})
|
ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": controls})
|
||||||
else:
|
else:
|
||||||
controls = self.file.create_entity(
|
controls = self.file.create_entity(
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ class Usecase:
|
|||||||
def execute(self):
|
def execute(self):
|
||||||
quantity = self.file.create_entity(self.settings["ifc_class"], Name="Unnamed")
|
quantity = self.file.create_entity(self.settings["ifc_class"], Name="Unnamed")
|
||||||
quantity[3] = 0.0
|
quantity[3] = 0.0
|
||||||
|
# This is a bold assumption
|
||||||
|
# https://forums.buildingsmart.org/t/how-does-a-cost-item-know-that-it-is-counting-a-controlled-product/3564
|
||||||
|
if self.settings["ifc_class"] == "IfcQuantityCount" and self.settings["cost_item"].Controls:
|
||||||
|
for rel in self.settings["cost_item"].Controls:
|
||||||
|
quantity[3] += len(rel.RelatedObjects)
|
||||||
quantities = list(self.settings["cost_item"].CostQuantities or [])
|
quantities = list(self.settings["cost_item"].CostQuantities or [])
|
||||||
quantities.append(quantity)
|
quantities.append(quantity)
|
||||||
self.settings["cost_item"].CostQuantities = quantities
|
self.settings["cost_item"].CostQuantities = quantities
|
||||||
|
|||||||
Reference in New Issue
Block a user