mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 22:22:26 +00:00
improve pset editing workflow and use refactored core and tool functions
This commit is contained in:
@@ -356,24 +356,7 @@ class AddPset(bpy.types.Operator, Operator):
|
|||||||
obj_type: bpy.props.StringProperty()
|
obj_type: bpy.props.StringProperty()
|
||||||
|
|
||||||
def _execute(self, context):
|
def _execute(self, context):
|
||||||
self.file = IfcStore.get_file()
|
core.add_pset(tool.Ifc, tool.Pset, tool.Blender, obj_name=self.obj, obj_type=self.obj_type)
|
||||||
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
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class AddQto(bpy.types.Operator, Operator):
|
class AddQto(bpy.types.Operator, Operator):
|
||||||
|
|||||||
@@ -43,3 +43,4 @@ def add_pset(ifc, pset, blender, obj_name, obj_type):
|
|||||||
ifc_pset = pset.get_element_pset(element, pset_name)
|
ifc_pset = pset.get_element_pset(element, pset_name)
|
||||||
if not ifc_pset:
|
if not ifc_pset:
|
||||||
ifc.run("pset.add_pset", product=element, name=pset_name)
|
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)
|
||||||
@@ -66,3 +66,10 @@ class Pset(blenderbim.core.tool.Pset):
|
|||||||
if value is not None:
|
if value is not None:
|
||||||
return False
|
return False
|
||||||
return True
|
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
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user