Hi there, just wanted to contribute if it can help.
I had this Ai structure:
Layer1
----SymbolA
Layer2
----SymbolA
Layer3
----SymbolB
and I wanted to have:
Layer1-SymbolA
----SymbolA
Layer2-SymbolA
----SymbolA
Layer3-SymbolB
----SymbolB
So i tweaked the RenameLayers.jsx script from Sebastien Lavoieto use regex AND to insert the symbol's name at the right place.
// Generated by CoffeeScript 1.7.1 #target "illustrator-18"; var LayerRenamer, layerRenamer; LayerRenamer = (function () { function LayerRenamer() { if (app.activeDocument.selection.length > 0) { this.replacements = [new RegExp(prompt("Where would you like to replace via RegExp?", "Eg: source S12 (S\\d\\d)")), prompt("What would you like to replace it with?", "Eg: replacement $1")]; this.renameLayers(app.activeDocument.selection); } else { alert("Select the layers you would like to be renamed."); } } LayerRenamer.prototype.renameLayers = function (layers) { var layer, name, _i, _len, _results, symbolName; _results = []; symbolName = ""; for (_i = 0, _len = layers.length; _i < _len; _i++) { layer = layers[_i]; layer = layer.parent; if (layer.pageItems.length == 1) { symbolName = layer.pageItems[0].symbol.name; } name = layer.name; _results.push(layer.name = name.replace(this.replacements[0], (this.replacements[1] + "-" + symbolName))); } return _results; }; return LayerRenamer; })(); layerRenamer = new LayerRenamer();
Hope this can help someone.
PS: no, this was not a question.
PPS: Of course the real use case had more than 3 layers, and more than one document, I would have done it faster by hand.