improve pset editing workflow and use refactored core and tool functions

This commit is contained in:
Sigma Dimensions (Yass)
2023-09-20 01:22:18 +01:00
parent f79e6ada9b
commit 0c72ee9b0f
3 changed files with 9 additions and 18 deletions
@@ -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):
+1
View File
@@ -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)
+7
View File
@@ -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
)