I made many copies of an object, then I thought it would've been better if I made them to share the same Data (being an instance of the same original object), I know how to do it one by one, is there a way to do it for all of them at once? I tried Copy Attribute add-on but didn't find what option can do that, or even if this is possible in the first place.
Blender makes this very easy.
Select all the objects you want to have the same data, then select the object which the data will be copied from, last so that is it the active object.
Press CtrlL and choose Object Data. Or from the 3D view header Object > Make Links > Object Data.
Doing that will give the same outcome as if you had used the linked duplicates (AltD) to start with.
Here is a simple script, that assumes you want to have all mesh objects selected share the same mesh as the active_object (last selected).
import bpy context = bpy.context # use the mesh of the active object obj = context.active_object mesh = obj.data if obj and obj.type == 'MESH': mesh_obs = [o for o in context.selected_objects if o is not obj and o.type == 'MESH'] for mo in mesh_obs: mo.data = mesh