bim.add_proposed_prop to show error message if property already exists

This commit is contained in:
Andrej730
2024-09-12 11:08:17 +05:00
parent e81fe60218
commit cc90c92dec
3 changed files with 11 additions and 5 deletions
@@ -440,5 +440,8 @@ class AddProposedProp(bpy.types.Operator):
prop_value: bpy.props.StringProperty()
def execute(self, context):
core.add_proposed_prop(tool.Pset, self.obj, self.obj_type, self.prop_name, self.prop_value)
res = core.add_proposed_prop(tool.Pset, self.obj, self.obj_type, self.prop_name, self.prop_value)
if res:
self.report({"ERROR"}, res)
return {"CANCELLED"}
return {"FINISHED"}
+5 -2
View File
@@ -89,9 +89,12 @@ def enable_pset_editing(
pset_tool.enable_proposed_pset(props, pset_name, pset_type, has_template)
def add_proposed_prop(pset: tool.Pset, obj_name: str, obj_type: tool.Ifc.OBJECT_TYPE, name: str, value: Any) -> None:
def add_proposed_prop(
pset: tool.Pset, obj_name: str, obj_type: tool.Ifc.OBJECT_TYPE, name: str, value: Any
) -> Union[None, str]:
props = pset.get_pset_props(obj_name, obj_type)
pset.add_proposed_property(name, pset.cast_string_to_primitive(value), props)
res = pset.add_proposed_property(name, pset.cast_string_to_primitive(value), props)
return res
def unshare_pset(
+2 -2
View File
@@ -297,9 +297,9 @@ class Pset(bonsai.core.tool.Pset):
return bonsai.bim.schema.ifc.psetqto.get_by_name(name)
@classmethod
def add_proposed_property(cls, name: str, value: Any, props: bpy.types.PropertyGroup) -> None:
def add_proposed_property(cls, name: str, value: Any, props: bpy.types.PropertyGroup) -> Union[None, str]:
if props.properties.get(name):
return
return f"Property '{name}' already exists."
prop = props.properties.add()
prop.name = name
metadata = prop.metadata