From 9a026d93fb7e0fd2bc09cb805b21558b41debe5b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 3 Jul 2020 21:54:22 +1000 Subject: [PATCH] Update fetch object passport to substitute a mesh from a Blender file only. See #871. --- .../blenderbim/bim/operator.py | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index 7037f0dcdc..49e1497acb 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -1696,25 +1696,18 @@ class FetchObjectPassport(bpy.types.Operator): bl_label = 'Fetch Object Passport' def execute(self, context): - for document in bpy.context.active_object.BIMObjectProperties.documents: - if not document.file[-6:] == '.opass': - continue - with open(os.path.join(bpy.context.scene.BIMProperties.data_dir, 'doc', document.file)) as f: - self.object_pass = json.load(f) - if 'blender' in self.object_pass: - self.fetch_blender() + for reference in bpy.context.active_object.BIMObjectProperties.document_references: + reference = bpy.context.scene.BIMProperties.document_references[reference.name] + if reference.location[-6:] == '.blend': + self.fetch_blender(reference) return {'FINISHED'} - def fetch_blender(self): - identification = self.object_pass['blender']['identification'] - uri = os.path.join(bpy.context.scene.BIMProperties.data_dir, - 'doc', - self.object_pass['blender']['uri']) + def fetch_blender(self, reference): bpy.ops.wm.link( - filename=identification, - directory=os.path.join(uri, 'Mesh') + filename=reference.name, + directory=os.path.join(reference.location, 'Mesh') ) - bpy.context.active_object.data = bpy.data.meshes[identification] + bpy.context.active_object.data = bpy.data.meshes[reference.name] class AddSubcontext(bpy.types.Operator):