10
$\begingroup$

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.

$\endgroup$

3 Answers 3

17
$\begingroup$

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.

$\endgroup$
4
$\begingroup$

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
$\endgroup$
3
$\begingroup$

Try selecting all your copies, then select your original object and press CtrlL - Object Data. After that, changing the data of your original object should cause changes in copies.

$\endgroup$
1
  • $\begingroup$ Awesome, thank you, just saved be lots of tedious work! $\endgroup$
    – Georges D
    Commented Apr 5, 2016 at 14:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .