Skip to main content
suez22
Participant
April 23, 2022
Question

Illustrator script: all Artboard Elements to Symbol

  • April 23, 2022
  • 2 replies
  • 706 views

Hi,

I have been trying to make a simple script that selects all elements on an artboard and makes a symbol with the name of the artboard. Unfortunately the symbols.add(selection) does not work. Can anyone give me a clue or solution. 

This topic has been closed for replies.

2 replies

Charu Rajput
Community Expert
Community Expert
April 23, 2022

Hi,

You can try the following,

 

var doc = app.activeDocument;
var _activeAtboardName = doc.artboards[app.activeDocument.artboards.getActiveArtboardIndex()].name
doc.selectObjectsOnActiveArtboard();
app.executeMenuCommand('group');
var _symbol = doc.symbols.add(app.selection[0]);
_symbol.name = _activeAtboardName;
app.executeMenuCommand('ungroup');

 

app.selection, is an array, but symbols.add expect a single pageItem not an array, tehrefore, group all items before making symbol and after that ungroup it.

 

 

Best regards
rcraighead
Legend
August 3, 2022

@Charu Rajput , 
Your code example creates a symbol but does not replace the selection with the symbol. How do I convert the selection to a symbol?

Charu Rajput
Community Expert
Community Expert
August 3, 2022

@rcraighead ,

I don't know direct way to convert but below is the workaround, where I am placing newly created symbol at the same position where selection exist.

var doc = app.activeDocument;
var _activeAtboardName = doc.artboards[app.activeDocument.artboards.getActiveArtboardIndex()].name;
doc.selectObjectsOnActiveArtboard();
app.executeMenuCommand('group');
var _selectedItem = app.selection[0];
var _symbol = doc.symbols.add(_selectedItem);
doc.symbolItems.add(_symbol).position = _selectedItem.position;
_selectedItem.remove();
Best regards
femkeblanco
Legend
April 23, 2022

One can't debug code that one can't see. Also, it would be helpful to show what you're trying to achieve with a screenshot.