Well yes delete them and recreate thems with same changes.
If there is a script that does it for me, thats welcome as well.
Unless you want to make a mistake then youd need to use one. Basically such a script script is concepually easy top make. But has a few caveats.
Caveat number one, automatic identifying meshes to be the same mesh is a bit resource intensive for big meshes. So if you can manually identify all the duplicates then it makes ding the script a LOT easier.
Cabeat number 2, shader assignments are A bit painfull to do exactly right. Again if you dont need to resolve shaders it gets even more easier to do.
So now if we skip BOTH above complications the script gets very easy to make (so easy im improvising the script here):
/* jooMakeInstancesOfLastSelected.mel 0.1
Authors: Janne 'Joojaa' Ojala
Testing: if it works after a suitably long time without
much problems let me know. Report any problems.
License: Creative Commons, Attribution, Share Alike
Request by: fatih gurdal
About:
A simple script that will replace a bunch of objects with a
instance of the highlighted object.
Install Instructions:
place this text in a file named:
jooMakeInstancesOfLastSelected.mel
that resides in your personal Maya script directory.
Usage select all objects to be instanced then add the master object
to selection and execute:
jooMakeInstancesOfLastSelected();
Changelist:
10.09.2011 - Original file
*****************************************************************/
proc string[] justShapes(string $list[]){
return `listRelatives -shapes $list`;
}
global proc jooMakeInstancesOfLastSelected(){
$master = justShapes(`ls -sl -tl 1`);
$all = `ls -sl`;
$allShapes = justShapes($all);
if (size($master) != 1)
error "script does not account for transforms with multiple shapes";
for($i=0;$i<size($all);$i++){
$item = $all[$i];
$shape = $allShapes[$i];
if ($shape == $master[0])
continue; // skip its a instance
delete $shape;
parent -add -shape $master[0] $item;
}
select $all;
}