diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 5c20aea10c..f235f652d0 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -318,6 +318,7 @@ class IfcImporter: self.profile_code("Merging by colour") self.set_default_context() self.profile_code("Setting default context") + self.setup_viewport_camera() self.update_progress(100) bpy.context.window_manager.progress_end() @@ -1913,6 +1914,13 @@ class IfcImporter: obj.matrix_world = matrix_world tool.Geometry.record_object_position(obj) + def setup_viewport_camera(self): + context_override = tool.Blender.get_viewport_context() + with bpy.context.temp_override(**context_override): + bpy.ops.object.select_all(action="SELECT") + bpy.ops.view3d.view_selected() + bpy.ops.object.select_all(action="DESELECT") + class IfcImportSettings: def __init__(self): diff --git a/src/blenderbim/blenderbim/tool/blender.py b/src/blenderbim/blenderbim/tool/blender.py index 6f6bbd3628..20f825ab25 100644 --- a/src/blenderbim/blenderbim/tool/blender.py +++ b/src/blenderbim/blenderbim/tool/blender.py @@ -167,7 +167,8 @@ class Blender: when in real life you can have a couple of those but should work for the most cases. """ area = next(area for area in bpy.context.screen.areas if area.type == "VIEW_3D") - context_override = {"area": area} + region = next(region for region in area.regions if region.type == "WINDOW") + context_override = {"area": area, "region": region} return context_override @classmethod