Fix #5065. Restore "Import IFC" menu item for those wishing to purely work with IFC geometry instead of native ifc

This commit is contained in:
Dion Moult
2024-07-30 23:56:42 +10:00
parent b9f76042bb
commit 27a2c94b4a
3 changed files with 9 additions and 1 deletions
@@ -91,6 +91,7 @@ def register():
bpy.utils.register_tool(workspace.ExploreTool, after={"builtin.transform"}, separator=True, group=False) bpy.utils.register_tool(workspace.ExploreTool, after={"builtin.transform"}, separator=True, group=False)
bpy.types.Scene.BIMProjectProperties = bpy.props.PointerProperty(type=prop.BIMProjectProperties) bpy.types.Scene.BIMProjectProperties = bpy.props.PointerProperty(type=prop.BIMProjectProperties)
bpy.app.handlers.load_post.append(decorator.toggle_decorations_on_load) bpy.app.handlers.load_post.append(decorator.toggle_decorations_on_load)
bpy.types.TOPBAR_MT_file_import.append(ui.file_import_menu)
bpy.types.TOPBAR_MT_file.prepend(ui.file_menu) bpy.types.TOPBAR_MT_file.prepend(ui.file_menu)
bpy.types.TOPBAR_MT_file_context_menu.prepend(ui.file_menu) bpy.types.TOPBAR_MT_file_context_menu.prepend(ui.file_menu)
wm = bpy.context.window_manager wm = bpy.context.window_manager
@@ -730,7 +730,7 @@ class LoadProject(bpy.types.Operator, IFCFileSelector):
if not self.is_existing_ifc_file(): if not self.is_existing_ifc_file():
return {"FINISHED"} return {"FINISHED"}
if tool.Blender.is_default_scene(): if self.should_start_fresh_session and tool.Blender.is_default_scene():
for obj in bpy.data.objects: for obj in bpy.data.objects:
bpy.data.objects.remove(obj) bpy.data.objects.remove(obj)
@@ -743,6 +743,8 @@ class LoadProject(bpy.types.Operator, IFCFileSelector):
if not self.is_advanced: if not self.is_advanced:
bpy.ops.bim.load_project_elements() bpy.ops.bim.load_project_elements()
if not self.should_start_fresh_session:
bpy.ops.bim.convert_to_blender()
except: except:
blenderbim.last_error = traceback.format_exc() blenderbim.last_error = traceback.format_exc()
raise raise
@@ -25,6 +25,11 @@ from blenderbim.bim.ifc import IfcStore
from blenderbim.bim.module.project.data import ProjectData, LinksData from blenderbim.bim.module.project.data import ProjectData, LinksData
def file_import_menu(self, context):
op = self.layout.operator("bim.load_project", text="IFC (Geometry Only) (.ifc/.ifczip/.ifcxml)")
op.should_start_fresh_session = False
class BIM_MT_project(Menu): class BIM_MT_project(Menu):
bl_idname = "BIM_MT_project" bl_idname = "BIM_MT_project"
bl_label = "New IFC Project" bl_label = "New IFC Project"