From cd6bd0e3cc59d164a4a92248dd8b535a3b727100 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 11 Aug 2020 14:50:21 +1000 Subject: [PATCH] Body subcontext added by default when a new rep is added, with a cloned mesh --- src/ifcblenderexport/blenderbim/bim/operator.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index de7321bb0d..843027d90f 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -1,5 +1,6 @@ import os import bpy +import uuid import time import json import logging @@ -2302,7 +2303,12 @@ class SwitchContext(bpy.types.Operator): self.obj = bpy.context.active_object if '/' not in self.obj.data.name: + self.obj.data.name = ifcopenshell.guid.compress(str(uuid.uuid4()).replace('-', '')) self.obj.data.name = 'Model/Body/MODEL_VIEW/' + self.obj.data.name + representation_context = self.obj.BIMObjectProperties.representation_contexts.add() + representation_context.context = 'Model' + representation_context.name = 'Body' + representation_context.target_view = 'MODEL_VIEW' self.context = bpy.context.scene.BIMProperties.available_contexts self.subcontext = bpy.context.scene.BIMProperties.available_subcontexts @@ -2320,8 +2326,10 @@ class SwitchContext(bpy.types.Operator): global_id = self.obj.BIMObjectProperties.attributes.get('GlobalId').string_value mesh = self.pull_mesh_from_ifc(global_id) except: - mesh = bpy.data.meshes.new('{}/{}/{}/{}'.format( - self.context, self.subcontext, self.target_view, self.obj.data.name.split('/')[3])) + existing_mesh = self.obj.data + mesh = self.obj.data.copy() + mesh.name = '{}/{}/{}/{}'.format( + self.context, self.subcontext, self.target_view, self.obj.data.name.split('/')[3]) representation_context = self.obj.BIMObjectProperties.representation_contexts.add() representation_context.context = self.context representation_context.name = self.subcontext