fix displaying undefined or userdefined units in cost schedules

This commit is contained in:
Sigma Dimensions (Yass)
2023-10-25 15:01:52 +01:00
parent df4cd493ee
commit 48a0d8c508
2 changed files with 6 additions and 2 deletions
@@ -158,8 +158,10 @@ class CostSchedulesData:
unit = ifcopenshell.util.unit.get_property_unit(quantity, tool.Ifc.get())
if unit:
data["UnitSymbol"] = ifcopenshell.util.unit.get_unit_symbol(unit)
else:
data["UnitSymbol"] = "U"
if quantity.is_a("IfcPhysicalSimpleQuantity"):
measure_class = quantity.wrapped_data.declaration().as_entity().attribute_by_index(3).type_of_attribute().declared_type().name()
if "Count" in measure_class:
data["UnitSymbol"] = "U"
# same_unit_nested_cost_item = set()
# data["DerivedTotalCostQuantity"] = None
@@ -464,6 +464,8 @@ def get_unit_symbol(unit):
if unit.is_a("IfcSIUnit"):
symbol += prefix_symbols.get(unit.Prefix, "")
symbol += unit_symbols.get(unit.Name.replace("METER", "METRE"), "?")
if unit.is_a("IfcContextDependentUnit") and unit.UnitType == "USERDEFINED":
symbol = unit.Name
return symbol