I find it difficult to understand that there are two users of that mesh data in my blend file.
How can I clearly track the user of a block of data in Blender?
Blender Stack Exchange is a question and answer site for people who use Blender to create 3D graphics, animations, or games. It only takes a minute to sign up.Sign up to join this community
First, deselect all.
You can then select all users of (eg) a mesh by right clicking that mesh in the outliner then clicking "select linked":
It should work with any linked item as materials, etc.
Then if you switch the outliner to "selected", it will list just all linked users.
bring now able to look at your file, it seams really weird...
you have 1 scene, and bender reports 1 object, but in the datablocks you have 188 objects... how many should it have in your goal?
and you "only" object has currently one of dozen other meshes...
could it be that this file has issues due to a "troubled" history..?
I tried appending only this object from your file (all 188 objects are still there) to a blank new file, and it works well now, and its mesh has only 1 real user, as it should have been...
Via a script.
Re-visiting https://blender.stackexchange.com/a/230425/15543 which was written to see which material data-block used which images.
An image, like a mesh, world, material ... in blender is an ID object. Given the image is our ID object of interest Run over all the ID objects in the blend and list and report any where
ob.user_of_id(ID) is > 0
import bpy from bpy.types import bpy_prop_collection def search(ID): def users(col): ret = tuple(repr(o) for o in col if o.user_of_id(ID)) return ret if ret else None return filter(None, ( users(getattr(bpy.data, p)) for p in dir(bpy.data) if isinstance( getattr(bpy.data, p, None), bpy_prop_collection ) ) ) img = bpy.data.images #img = bpy.data.images['Foo'] # an image named Foo # report print(repr(img)) print("Users:", img.users) for users in search(img): print(users)
Test run. Image used in material, "Material", node group "NodeGroup", reference image empty "Empty", texture "Texture" and world "World".
bpy.data.images['Screenshot from 2021-06-17 17-17-47.png'] Users: 5 ("bpy.data.materials['Material']",) ("bpy.data.node_groups['NodeGroup']",) ("bpy.data.objects['Empty']",) ("bpy.data.textures['Texture']",) ("bpy.data.worlds['World']",)
Or for an Object type
.. or users of context object, edit to
img = bpy.context.object
bpy.data.objects['Cube'] Users: 2 ("bpy.data.collections['Collection 1']",) ("bpy.data.scenes['Scene']",)