From c333535ae5211a379d4fb60159ed2157df43dc15 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 24 Jun 2025 13:06:37 +0500 Subject: [PATCH] Blender 4.5 - prevent infinite loading of previews Related - https://projects.blender.org/blender/blender/issues/140903 --- src/bonsai/bonsai/tool/model.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index b88d9d166a..535bd16b59 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -1063,12 +1063,15 @@ class Model(bonsai.core.tool.Model): return # Already processed assert isinstance(obj, bpy.types.Object) - obj.asset_generate_preview() - while not obj.preview: - pass + # Since Blender 4.5 have to use `preview_ensure` instead of `asset_generate_preview`, see #6839. + obj.preview_ensure() - # if object has .data we can use default blender .asset_generate_preview() - if not obj.data: + if obj.data: + # If object has .data we can use default Blender preview. + # No need to preview to update, Blender will do it in background, + # `preview.icon_id` doesn't change after `asset_generate_preview()`. + obj.asset_generate_preview() + else: unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) size = 128 img = Image.new("RGBA", (size, size))