diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 2b489076d2..c443dcb0c8 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -107,6 +107,7 @@ if bpy is not None: operator.RemoveCsvAttribute, operator.ExportIfcCsv, operator.ImportIfcCsv, + operator.EyedropIfcCsv, prop.StrProperty, prop.Classification, prop.ClassificationReference, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index ac8c6f64ee..42152d21dd 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -2076,3 +2076,17 @@ class ImportIfcCsv(bpy.types.Operator): ifc_csv.output = self.filepath ifc_csv.Import(bpy.context.scene.BIMProperties.ifc_file) return {'FINISHED'} + + +class EyedropIfcCsv(bpy.types.Operator): + bl_idname = 'bim.eyedrop_ifccsv' + bl_label = 'Query Selected Items' + + def execute(self, context): + global_ids = [] + for obj in bpy.context.selected_objects: + if hasattr(obj, 'BIMObjectProperties') \ + and obj.BIMObjectProperties.attributes.get('GlobalId'): + global_ids.append('#' + obj.BIMObjectProperties.attributes.get('GlobalId').string_value) + bpy.context.scene.BIMProperties.ifc_selector = '|'.join(global_ids) + return {'FINISHED'} diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index d3e5a2aeb6..1e3ec6ee01 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -662,8 +662,9 @@ class BIM_PT_ifccsv(Panel): scene = context.scene props = scene.BIMProperties - row = layout.row() + row = layout.row(align=True) row.prop(props, 'ifc_selector') + row.operator('bim.eyedrop_ifccsv', icon='EYEDROPPER', text='') row = layout.row() row.operator('bim.add_csv_attribute')