mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
Fix error starting to edit pset without enum reference/enum values #5707
Traceback
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\module\pset\operator.py", line 62, in execute
core.enable_pset_editing(tool.Pset, pset, self.pset_name, self.pset_type, self.obj, self.obj_type)
File "\bonsai\core\pset.py", line 86, in enable_pset_editing
pset_tool.import_pset_from_existing(pset, props)
File "\bonsai\tool\pset.py", line 121, in import_pset_from_existing
metadata.set_value(prop.EnumerationReference.EnumerationValues[0].wrappedValue)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'EnumerationValues'
This commit is contained in:
@@ -118,12 +118,25 @@ class Pset(bonsai.core.tool.Pset):
|
||||
metadata.name = prop.Name
|
||||
metadata.is_null = len(simple_prop.enumerated_value.enumerated_values) == 0
|
||||
metadata.is_optional = True
|
||||
metadata.set_value(prop.EnumerationReference.EnumerationValues[0].wrappedValue)
|
||||
enum_reference = prop.EnumerationReference
|
||||
selected_enum_items = [v.wrappedValue for v in (prop.EnumerationValues or ())]
|
||||
|
||||
enum_items = [v.wrappedValue for v in prop.EnumerationReference.EnumerationValues]
|
||||
selected_enum_items = [v.wrappedValue for v in prop.EnumerationValues]
|
||||
data_type = metadata.get_value_name(display_only=True)
|
||||
# If there is no reference, then just use the current values.
|
||||
if enum_reference is None:
|
||||
enum_items = selected_enum_items
|
||||
else:
|
||||
enum_items = [v.wrappedValue for v in enum_reference.EnumerationValues]
|
||||
|
||||
# In theory there could be no reference and no current values,
|
||||
# nothing to show then, I guess.
|
||||
if not enum_items:
|
||||
continue
|
||||
|
||||
# Trigger metadata to detect data_type.
|
||||
metadata.set_value(enum_items[0])
|
||||
data_type = metadata.get_value_name()
|
||||
|
||||
# Fill enum items.
|
||||
for enum in enum_items:
|
||||
new = simple_prop.enumerated_value.enumerated_values.add()
|
||||
setattr(new, data_type, enum)
|
||||
|
||||
Reference in New Issue
Block a user