Skip to content

Support for editing the properties of P_BOUNDEDVALUE, P_LISTVALUE, and other types #5195

@ZiruiHong

Description

@ZiruiHong

Issue Description

Current ifcopenshell.api.pset.edit_pset doesn't support 1) updating IfcPropertyListValue properties, and 2) adding new properties for IfcPropertyBoundedValue type.

I'm wondering if the support for these are under development or to be developed in the near future. Thanks.

>>> ifcopenshell.api.pset.edit_pset(model, pset = pset_reinf, properties = {"Spacing": (1,1,2,3)}, pset_template = template)
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\__init__.py", line 252, in wrapper
    result = usecase(*args, **settings)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\pset\edit_pset.py", line 166, in edit_pset
    return usecase.execute()
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\pset\edit_pset.py", line 173, in execute
    existing_props = self.update_existing_properties()
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\pset\edit_pset.py", line 230, in update_existing_properties
    raise NotImplementedError(f"Updating '{prop.is_a()}' properties is not supported yet")
NotImplementedError: Updating 'IfcPropertyListValue' properties is not supported yet
>>> ifcopenshell.api.pset.edit_pset(model, pset = pset_tol, properties = {"length_tol": (2.01, 3.21)}, pset_template = template)
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\__init__.py", line 252, in wrapper
    result = usecase(*args, **settings)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\pset\edit_pset.py", line 166, in edit_pset
    return usecase.execute()
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\pset\edit_pset.py", line 174, in execute
    new_props = self.add_new_properties()
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\zirui\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\api\pset\edit_pset.py", line 362, in add_new_properties
    raise NotImplementedError(f"Template type '{pset_template.TemplateType}' is not supported yet")
NotImplementedError: Template type 'P_BOUNDEDVALUE' is not supported yet

My Configurations

Python: 3.11
ifcopenshell: 0.7.11-alpha240809
Blender: 4.2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions