Instances are objects in Blender that share a single data block. They share the same geometry, material, properties, and attributes, which significantly improves scene processing and rendering speed.
We can quickly select all instances of an active object by choosing “Select – Select Linked – Object Data” in the 3D viewport menu, or by pressing Shift + l and selecting the same “Object Data” item.
Instance selection is performed by calling the “select_linked()” Blender Python API operator with the “type” parameter set to “OBJECT”:
|
1 |
bpy.ops.object.select_linked(type='OBDATA') |
If we want to select all instances of the currently active object in a script or add-on, we can use this operator.
Or, if we don’t want to be tied to the operator call, we can find and select all instances by a shared data block:
|
1 2 3 4 |
instances = [_obj for _obj in bpy.data.objects \ if _obj.data == bpy.context.object.data and _obj != bpy.context.active_object] # [bpy.data.objects['Cube.005'], bpy.data.objects['Cube.006']] |
To select only these instances, first deselect all objects in the scene.
|
1 |
bpy.ops.object.select_all(action='DESELECT') |
Then set the “select” property to True for each of instance in our list of instances.
|
1 2 |
for instance in instances: instance.select_set(True) |
And return the selection to the currently active object.
|
1 |
bpy.context.object.select_set(True) |
This selects all instances of the currently active object in the entire Blender scene.

.blend file on Patreon