diff --git a/src/blenderbim/blenderbim/bim/module/pset/operator.py b/src/blenderbim/blenderbim/bim/module/pset/operator.py index adbb9cfbcd..f5137c36e4 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset/operator.py @@ -356,24 +356,7 @@ class AddPset(bpy.types.Operator, Operator): obj_type: bpy.props.StringProperty() def _execute(self, context): - self.file = IfcStore.get_file() - pset_name = get_pset_props(context, self.obj, self.obj_type).pset_name - if self.obj_type == "Object": - if context.selected_objects: - objects = [o.name for o in tool.Blender.get_selected_objects()] - else: - objects = [context.active_object.name] - else: - objects = [self.obj] - for obj in objects: - ifc_definition_id = blenderbim.bim.helper.get_obj_ifc_definition_id(context, obj, self.obj_type) - if not ifc_definition_id: - continue - element = tool.Ifc.get().by_id(ifc_definition_id) - if pset_name in blenderbim.bim.schema.ifc.psetqto.get_applicable_names(element.is_a(), pset_only=True): - bpy.ops.bim.enable_pset_editing( - pset_id=0, pset_name=pset_name, pset_type="PSET", obj=obj, obj_type=self.obj_type - ) + core.add_pset(tool.Ifc, tool.Pset, tool.Blender, obj_name=self.obj, obj_type=self.obj_type) class AddQto(bpy.types.Operator, Operator): diff --git a/src/blenderbim/blenderbim/core/pset.py b/src/blenderbim/blenderbim/core/pset.py index 36200040f7..023b7ba190 100644 --- a/src/blenderbim/blenderbim/core/pset.py +++ b/src/blenderbim/blenderbim/core/pset.py @@ -43,3 +43,4 @@ def add_pset(ifc, pset, blender, obj_name, obj_type): ifc_pset = pset.get_element_pset(element, pset_name) if not ifc_pset: ifc.run("pset.add_pset", product=element, name=pset_name) + pset.enable_pset_editing(pset_id=0, pset_name=pset_name, pset_type="PSET",obj=obj_name, obj_type=obj_type) \ No newline at end of file diff --git a/src/blenderbim/blenderbim/tool/pset.py b/src/blenderbim/blenderbim/tool/pset.py index 62f52bdecc..1c115f7e1e 100644 --- a/src/blenderbim/blenderbim/tool/pset.py +++ b/src/blenderbim/blenderbim/tool/pset.py @@ -66,3 +66,10 @@ class Pset(blenderbim.core.tool.Pset): if value is not None: return False return True + + @classmethod + def enable_pset_editing(cls, pset_id=None, pset_name=None, pset_type=None, obj=None, obj_type=None): + #TODO REFACTOR ONCE toll/CORE functions are available + bpy.ops.bim.enable_pset_editing( + pset_id=0, pset_name=tool.Pset.get_pset_name(obj, obj_type), pset_type="PSET", obj=obj, obj_type=obj_type + ) \ No newline at end of file