small refactor for Ifc.edit and tool.Ifc

1) replaced IfcStore.edited_objs.add with tool.Ifc.edit
2) updated interface in tool.py
3) removed unlink from tool.Ifc - it was declared there twice
This commit is contained in:
Andrej730
2023-03-17 17:48:42 +05:00
parent a83c4b2896
commit 31f6baaf67
7 changed files with 13 additions and 22 deletions
+3 -3
View File
@@ -47,9 +47,9 @@ def mode_callback(obj, data):
):
continue
if obj.data.BIMMeshProperties.ifc_definition_id:
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
elif IfcStore.get_file().by_id(obj.BIMObjectProperties.ifc_definition_id).is_a("IfcGridAxis"):
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
def name_callback(obj, data):
@@ -94,7 +94,7 @@ def name_callback(obj, data):
def color_callback(obj, data):
if obj.BIMMaterialProperties.ifc_style_id:
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
def active_object_callback():
@@ -17,19 +17,11 @@
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
import bpy
from bpy.types import Operator
from bpy.props import FloatProperty, IntProperty, BoolProperty
from bpy_extras.object_utils import AddObjectHelper, object_data_add
import bmesh
import ifcopenshell
import blenderbim
import blenderbim.tool as tool
from blenderbim.bim.module.model.prop import BIMStairProperties
from blenderbim.bim.ifc import IfcStore
from mathutils import Vector
from pprint import pprint
import json
import zipfile
import os.path
@@ -65,7 +57,7 @@ def update_sverchok_modifier(context):
bm.to_mesh(obj.data)
bm.free()
obj.data.update()
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
# UI operators
@@ -55,7 +55,7 @@ def mode_callback(obj, data):
if not parametric or parametric["Engine"] != "BlenderBIM.DumbLayer2":
return
if obj.mode == "EDIT":
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
bm = bmesh.from_edit_mesh(obj.data)
bmesh.ops.dissolve_limit(bm, angle_limit=pi / 180 * 1, verts=bm.verts, edges=bm.edges)
bmesh.update_edit_mesh(obj.data)
@@ -155,7 +155,7 @@ class AlignWall(bpy.types.Operator):
aligner.align_first_layer()
elif self.align_type == "INTERIOR":
aligner.align_last_layer()
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
return {"FINISHED"}
+5
View File
@@ -349,11 +349,16 @@ class Ifc:
def get(cls): pass
def get_entity(cls, obj): pass
def get_object(cls, entity): pass
def get_path(cls): pass
def get_schema(cls): pass
def is_deleted(cls, element): pass
def is_edited(cls, obj): pass
def is_moved(cls, obj): pass
def link(cls, element, obj): pass
def schema(cls): pass
def edit(cls, obj): pass
def delete(cls, element): pass
def resolve_uri(cls, uri): pass
def run(cls, command, **kwargs): pass
def set(cls, ifc): pass
def unlink(cls, element=None, obj=None): pass
-4
View File
@@ -117,10 +117,6 @@ class Ifc(blenderbim.core.tool.Ifc):
occurences = [element]
return occurences
@classmethod
def unlink(cls, element=None, obj=None):
IfcStore.unlink_element(element, obj)
class Operator:
def execute(self, context):
IfcStore.execute_ifc_operator(self, context)
@@ -19,7 +19,6 @@
import ifcopenshell
import blenderbim.tool as tool
from blenderbim.bim.ifc import IfcStore
import bpy
import bmesh
@@ -113,7 +112,7 @@ def update_geonodes_modifier():
bm.to_mesh(obj.data)
bm.free()
obj.data.update()
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
if __name__ == "__main__":
+1 -2
View File
@@ -25,7 +25,6 @@ import blenderbim.tool as tool
from mathutils import Vector
from test.bim.bootstrap import NewFile
from blenderbim.tool.geometry import Geometry as subject
from blenderbim.bim.ifc import IfcStore
class TestImplementsTool(NewFile):
@@ -308,7 +307,7 @@ class TestIsEdited(NewFile):
assert subject.is_edited(obj) is True
obj.scale[0] = 1
assert subject.is_edited(obj) is False
IfcStore.edited_objs.add(obj)
tool.Ifc.edit(obj)
assert subject.is_edited(obj) is True