From c930b8f1558d06b99dbbffe19ddf98049e241eff Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 18 Nov 2019 11:30:08 +1100 Subject: [PATCH] Optimise select audited operator --- src/ifcblenderexport/blenderbim/operator.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/operator.py b/src/ifcblenderexport/blenderbim/operator.py index e79dc821b4..616ed5e0ea 100644 --- a/src/ifcblenderexport/blenderbim/operator.py +++ b/src/ifcblenderexport/blenderbim/operator.py @@ -225,13 +225,15 @@ class SelectAudited(bpy.types.Operator): bl_label = 'Select Audited' def execute(self, context): + audited_global_ids = [] with open(bpy.context.scene.BIMProperties.data_dir + 'audit.txt') as file: for line in file: - for object in bpy.context.visible_objects: - index = object.BIMObjectProperties.attributes.find('GlobalId') - if index != -1 \ - and object.BIMObjectProperties.attributes[index].string_value == line.split(' ')[3]: - object.select_set(True) + audited_global_ids.append(line.split(' ')[3]) + for object in bpy.context.visible_objects: + index = object.BIMObjectProperties.attributes.find('GlobalId') + if index != -1 \ + and object.BIMObjectProperties.attributes[index].string_value in audited_global_ids: + object.select_set(True) return {'FINISHED'} class QuickProjectSetup(bpy.types.Operator):