Fix #7331: derive cost item quantities from IfcSpace base quantities

assign_cost_item_quantity skipped every IfcSpatialElement, which also
swallowed IfcSpace. Spaces are legitimate quantifiable objects, so their
Qto_SpaceBaseQuantities (for example GrossFloorArea) were never picked up
and count based cost items fell back to 0. Keep skipping spatial
containers (site, building, storey) but allow IfcSpace.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Petru Conduraru
2026-07-09 07:27:56 +03:00
committed by Massimo Fabbro
parent 6085894433
commit e23142d01a
@@ -137,7 +137,7 @@ class Usecase:
if self.prop_name or formula: if self.prop_name or formula:
self.quantities = set(cost_item.CostQuantities or []) self.quantities = set(cost_item.CostQuantities or [])
for product in products: for product in products:
if product.is_a("IfcSpatialElement"): if product.is_a("IfcSpatialElement") and not product.is_a("IfcSpace"):
continue continue
ifcopenshell.api.control.assign_control( ifcopenshell.api.control.assign_control(
self.file, self.file,