From 32393136d290b80fa7fc369e74dd8e628bc6fe2a Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 12 Jun 2023 17:28:23 +0500 Subject: [PATCH] Support external shaders from currently opened blend file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously it was crashing if you try use shader from current .blend file as external. I guess we now kind of support external internal shaders 🙃 --- src/blenderbim/blenderbim/tool/blender.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/blenderbim/blenderbim/tool/blender.py b/src/blenderbim/blenderbim/tool/blender.py index ea0aca78d7..23b87252c1 100644 --- a/src/blenderbim/blenderbim/tool/blender.py +++ b/src/blenderbim/blenderbim/tool/blender.py @@ -20,6 +20,7 @@ import bpy import ifcopenshell.api import blenderbim.tool as tool from mathutils import Vector +from pathlib import Path class Blender: @@ -253,6 +254,12 @@ class Blender: @classmethod def append_data_block(cls, filepath, data_block_type, name, link=False, relative=False): + if Path(filepath) == Path(bpy.data.filepath): + data_block = getattr(bpy.data, data_block_type).get(name, None) + if not data_block: + return {"data_block": None, "msg": f"Data-block {data_block_type}/{name} not found in {filepath}"} + return {"data_block": data_block.copy(), "msg": ""} + with bpy.data.libraries.load(filepath, link=link, relative=relative) as (data_from, data_to): if name not in getattr(data_from, data_block_type): return {"data_block": None, "msg": f"Data-block {data_block_type}/{name} not found in {filepath}"}