resource.add_resource_quantity to ensure quantity type is supported

This commit is contained in:
Andrej730
2024-06-03 12:26:50 +05:00
parent 5ccdf187d5
commit c399eb259a
4 changed files with 54 additions and 26 deletions
@@ -17,6 +17,7 @@
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import ifcopenshell.util.element
import ifcopenshell.util.resource
def add_resource_quantity(
@@ -66,6 +67,14 @@ def add_resource_quantity(
"""
settings = {"resource": resource, "ifc_class": ifc_class}
resource_type = resource.is_a()
supported_quantities = ifcopenshell.util.resource.RESOURCES_TO_QUANTITIES[resource_type]
if ifc_class not in supported_quantities:
raise ValueError(
f"Resource type '{resource_type}' does not support quantity type '{ifc_class}'. "
f"Supported quantities: {','.join(supported_quantities)}"
)
quantity = file.create_entity(settings["ifc_class"], Name="Unnamed")
# 3 IfcPhysicalSimpleQuantity Value
if settings["ifc_class"] == "IfcQuantityCount":