mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 09:48:32 +00:00
bim.add_proposed_prop to show error message if property already exists
This commit is contained in:
@@ -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"}
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user