I’ve been working with Illustrator CC 2014 on a floor map for a ~400 rooms building. To allow visitors to find rooms more quickly, I wanted to generate a series of images with highlighted rooms. The rooms are mostly rectangles with their object name corresponding with their room number.

In short, I need some sort of procedure that does the following tasks:

  1. Change colour of object
  2. Export to PNG using the object name within the file name
  3. Change colour back
  4. Go on to the next object

I have no problem with steps 1, 3 and 4 using Automating tasks, but cannot figure out how to do step 2.

floor map

  • You will need scripting. – Scott Aug 19 '14 at 15:23
  • aunm @Scott now they can not get the specific script for this usecase. And i would have had it of the shelf. – joojaa Aug 20 '14 at 4:18
  • @Joojaa just answer the duplicate... – Scott Aug 20 '14 at 4:58
  • @Scott its not the same case. Computers are a bit more pedantic than you or I. – joojaa Aug 20 '14 at 6:12
  • Okay @joojaa .. reopened. – Scott Aug 20 '14 at 6:13

I have done this exact same thing here's my script:

#target illustrator

var path_prefix=("d:/temp/floormap_")
var layer = app.activeDocument.layers.getByName("rooms");

function exportFileToPNG8(dest) {
    if ( app.documents.length > 0 ) {
        var exportOptions = new ExportOptionsPNG8();
        var type = ExportType.PNG8;
        var fileSpec = new File(dest);
        exportOptions.colorCount = 32;
        exportOptions.transparency = false;
        app.activeDocument.exportFile( fileSpec, type, exportOptions );

for (var i=0; i < layer.pageItems.length; i++){
    var item = layer.pageItems[i];
    if(item.typename === "GroupItem"){
       var room_name = item.pageItems[0].contents;
       item.pageItems[1].hidden = false;
       item.pageItems[1].hidden = true;

In order to use you must ensure that you have a layer named rooms and under rooms you have a group for each room with the name of the room topmost and the layer to show hide after that hidden. Remeber to rename the path prefix.


Image 1: example of layer organization

The script is a bit fragile so if text is not first and the group has no second item it will fail. Here is the general outline of how the script works:

how it works

Image 2: state diagram of script

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.