diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py index cc27d81e32..7f2657e5ab 100644 --- a/src/blenderbim/blenderbim/bim/handler.py +++ b/src/blenderbim/blenderbim/bim/handler.py @@ -177,30 +177,20 @@ def refresh_ui_data(): except AttributeError: pass - if isinstance(tool.Ifc.get(), ifcopenshell.sqlite): - tool.Ifc.get().clear_cache() - - -def purge_module_data(): - from blenderbim.bim import modules - - refresh_ui_data() - for name, value in modules.items(): - try: - getattr(getattr(getattr(ifcopenshell.api, name), "data"), "Data").purge() - except AttributeError: - pass - + # TODO: deprecate prop purge functions and refactor into data classes. try: getattr(value, "prop").purge() except AttributeError: pass + if isinstance(tool.Ifc.get(), ifcopenshell.sqlite): + tool.Ifc.get().clear_cache() + @persistent def loadIfcStore(scene): IfcStore.purge() - purge_module_data() + refresh_ui_data() if not IfcStore.get_file(): return IfcStore.get_schema() @@ -212,7 +202,7 @@ def undo_post(scene): if IfcStore.last_transaction != bpy.context.scene.BIMProperties.last_transaction: IfcStore.last_transaction = bpy.context.scene.BIMProperties.last_transaction IfcStore.undo(until_key=bpy.context.scene.BIMProperties.last_transaction) - purge_module_data() + refresh_ui_data() tool.Ifc.rebuild_element_maps() @@ -221,7 +211,7 @@ def redo_post(scene): if IfcStore.last_transaction != bpy.context.scene.BIMProperties.last_transaction: IfcStore.last_transaction = bpy.context.scene.BIMProperties.last_transaction IfcStore.redo(until_key=bpy.context.scene.BIMProperties.last_transaction) - purge_module_data() + refresh_ui_data() tool.Ifc.rebuild_element_maps() diff --git a/src/blenderbim/blenderbim/bim/module/csv/operator.py b/src/blenderbim/blenderbim/bim/module/csv/operator.py index dceeb0a568..0ff49af50c 100644 --- a/src/blenderbim/blenderbim/bim/module/csv/operator.py +++ b/src/blenderbim/blenderbim/bim/module/csv/operator.py @@ -26,7 +26,7 @@ import webbrowser import ifcopenshell import blenderbim.tool as tool from blenderbim.bim.ifc import IfcStore -from blenderbim.bim.handler import purge_module_data +from blenderbim.bim.handler import refresh_ui_data class AddCsvAttribute(bpy.types.Operator): @@ -251,7 +251,7 @@ class ImportIfcCsv(bpy.types.Operator): ) if not props.should_load_from_memory: ifc_file.write(props.csv_ifc_file) - purge_module_data() + refresh_ui_data() return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index 2b67815858..9eecda3251 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -116,7 +116,7 @@ class PurgeIfcLinks(bpy.types.Operator): context.scene.BIMProperties.ifc_file = "" context.scene.BIMDebugProperties.attributes.clear() IfcStore.purge() - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() return {"FINISHED"} @@ -136,7 +136,7 @@ class ConvertToBlender(bpy.types.Operator): m.BIMMaterialProperties.ifc_style_id = False bpy.context.scene.BIMProperties.ifc_file = "" IfcStore.purge() - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 04f63b3578..60b671b5e3 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -720,7 +720,7 @@ class OverrideDuplicateMove(bpy.types.Operator): tool.Boundary.decorate_boundary(new_obj) # Recreate decompositions tool.Root.recreate_decompositions(relationships, old_to_new) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() class OverrideDuplicateMoveLinkedMacro(bpy.types.Macro): @@ -788,7 +788,7 @@ class OverrideDuplicateMoveLinked(bpy.types.Operator): old_to_new[tool.Ifc.get_entity(obj)] = new # Recreate decompositions tool.Root.recreate_decompositions(relationships, old_to_new) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() return {"FINISHED"} @@ -1076,7 +1076,7 @@ class OverrideDuplicateMoveAggregate(bpy.types.Operator): tool.Root.recreate_decompositions(relationships, old_to_new) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() return {"FINISHED"} @@ -1223,7 +1223,7 @@ class RefreshAggregate(bpy.types.Operator): tool.Root.recreate_decompositions(relationships, old_to_new) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 6c47978d98..0ee0ac2d58 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -429,7 +429,7 @@ class AppendLibraryElement(bpy.types.Operator): except: # TODO Remove this terrible code when I refactor this into the core pass - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() return {"FINISHED"} def import_material_from_ifc(self, element, context): @@ -1079,7 +1079,7 @@ class ExportIFC(bpy.types.Operator): save_blend_file = bool(bpy.data.is_saved and bpy.data.is_dirty and bpy.data.filepath) if save_blend_file: bpy.ops.wm.save_mainfile(filepath=bpy.data.filepath) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() self.report( {"INFO"}, f'IFC Project "{os.path.basename(output_file)}" {"" if not save_blend_file else "And Current Blend File Are"} Saved', diff --git a/src/blenderbim/blenderbim/bim/module/pset_template/operator.py b/src/blenderbim/blenderbim/bim/module/pset_template/operator.py index b6eface0e0..4d4534de80 100644 --- a/src/blenderbim/blenderbim/bim/module/pset_template/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset_template/operator.py @@ -58,17 +58,13 @@ class AddPsetTemplateFile(bpy.types.Operator): def execute(self, context): template = ifcopenshell.file() - filepath = os.path.join( - context.scene.BIMProperties.data_dir, - "pset", - self.props.new_template_filename + ".ifc", - ) + filepath = os.path.join(context.scene.BIMProperties.data_dir, "pset", self.props.new_template_filename + ".ifc") pset_template = ifcopenshell.api.run("pset_template.add_pset_template", template) ifcopenshell.api.run("pset_template.add_prop_template", template, pset_template=pset_template) template.write(filepath) self.props.new_template_filename = "" - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() blenderbim.bim.schema.reload(tool.Ifc.get().schema) context.scene.BIMPsetTemplateProperties.pset_template_files = filepath return {"FINISHED"} @@ -227,7 +223,7 @@ class SavePsetTemplateFile(bpy.types.Operator): def execute(self, context): IfcStore.pset_template_file.write(IfcStore.pset_template_path) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() blenderbim.bim.schema.reload(tool.Ifc.get().schema) return {"FINISHED"} @@ -241,7 +237,7 @@ class RemovePsetTemplateFile(bpy.types.Operator): os.remove(IfcStore.pset_template_path) except: pass - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() blenderbim.bim.schema.reload(tool.Ifc.get().schema) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index 3e90b3385b..b112794595 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -212,4 +212,4 @@ class CopyClass(bpy.types.Operator, Operator): objects = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects for obj in objects: core.copy_class(tool.Ifc, tool.Collector, tool.Geometry, tool.Root, obj=obj) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() diff --git a/src/blenderbim/blenderbim/bim/module/root/prop.py b/src/blenderbim/blenderbim/bim/module/root/prop.py index 95456da780..cd0b47949f 100644 --- a/src/blenderbim/blenderbim/bim/module/root/prop.py +++ b/src/blenderbim/blenderbim/bim/module/root/prop.py @@ -33,10 +33,6 @@ from bpy.props import ( ) -def purge(): - pass - - def get_ifc_predefined_types(self, context): if not IfcClassData.is_loaded: IfcClassData.load() diff --git a/src/blenderbim/blenderbim/bim/module/spatial/operator.py b/src/blenderbim/blenderbim/bim/module/spatial/operator.py index 451ee442ac..b9c3f00202 100644 --- a/src/blenderbim/blenderbim/bim/module/spatial/operator.py +++ b/src/blenderbim/blenderbim/bim/module/spatial/operator.py @@ -143,7 +143,7 @@ class CopyToContainer(bpy.types.Operator, tool.Ifc.Operator): old_to_new[tool.Ifc.get_entity(obj)] = result_objs # Recreate decompositions tool.Root.recreate_decompositions(relationships, old_to_new) - blenderbim.bim.handler.purge_module_data() + blenderbim.bim.handler.refresh_ui_data() class SelectContainer(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/blenderbim/blenderbim/bim/module/tester/prop.py b/src/blenderbim/blenderbim/bim/module/tester/prop.py index b68600f053..53e4c26993 100644 --- a/src/blenderbim/blenderbim/bim/module/tester/prop.py +++ b/src/blenderbim/blenderbim/bim/module/tester/prop.py @@ -31,10 +31,6 @@ from bpy.props import ( ) -def purge(): - pass - - def update_active_specification_index(self, context): TesterData.load()