From 23c60b38fda443f3b16caf24f12d1a01aaada794 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Fri, 10 Oct 2025 22:24:57 -0500 Subject: [PATCH] Reintroduce https://github.com/IfcOpenShell/IfcOpenShell/issues/7133 : Add hide_render synchronization to isolate_objects so hidden viewport objects are also hidden from render --- src/bonsai/bonsai/tool/blender.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index b9b3ae0d49..b59fba7837 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -1877,11 +1877,25 @@ class Blender(bonsai.core.tool.Blender): bpy.ops.object.hide_view_clear(select=False) bpy.ops.object.select_all(action="DESELECT") - for obj in objs: - obj.select_set(True) + + # Ensure objs_to_show exists (alias for clarity) + objs_to_show = objs + + # Show only these objects + for o in objs_to_show: + o.select_set(True) + o.hide_set(False) # Make visible in viewport + o.hide_render = False # Make visible in render + with bpy.context.temp_override(**override): bpy.ops.object.hide_view_set(unselected=True) + # Also hide all others from render + for o in bpy.context.view_layer.objects: + if o not in objs_to_show: + o.hide_render = True + + # Restore previous selection state bpy.ops.object.select_all(action="DESELECT") for name in previously_selected: obj = bpy.data.objects.get(name)