Welcome Dialog

Welcome to the Community!

We have a brand new look! Take a tour with us and explore the latest updates on Adobe Support Community.


what is easiest way to Seperate Objects to Their Own Layers

Explorer ,
Jan 14, 2021 Jan 14, 2021

Copy link to clipboard

Copied

how to separate layers in illustrator for after effects

is there better script or trick that release to layer sequence ???

TOPICS
How to, Scripting, Tools

Views

117

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 14, 2021 Jan 14, 2021

Copy link to clipboard

Copied

Do you know about Overlord? Are you trying to find an alternative? A pure script that's comparable is not going to be easy to make but Overlord has a lot more functions than what's asked here. Separating objects as layers itself is pretty simple, but I wanted to check first.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 15, 2021 Jan 15, 2021

Copy link to clipboard

Copied

overlord import ai objects as shapes and many shapes makes ae runs too slow

 

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 15, 2021 Jan 15, 2021

Copy link to clipboard

Copied

I'm not sure this would be any more performant, here's how I would do it:

// Converts an Illustrator collection to a normal Array
function get(type, parent) {
    parent = parent ? parent : app.activeDocument    
    var result = [];
    if (!parent[type]) return [];
    for (var i = 0; i < parent[type].length; i++)
        result.push(parent[type][i]);
    return result || [];
}
// Syntactical sugar to act on each item within a normal Array
Array.prototype.forEach = function (callback) {
    for (var i = 0; i < this.length; i++) callback(this[i], i, this);
};

// Do something to each pageItem
get('pageItems').forEach(function (pageItem) {
    // Add a new layer per item
    var layer = app.activeDocument.layers.add();
    // If an item is named, have the layer inherit that name
    if (pageItem.name) layer.name = pageItem.name;
    // Move the item into the layer, then proceed in loop
    pageItem.move(layer, ElementPlacement.PLACEATBEGINNING);
});

// Do something to each Layer
get('layers').forEach(function (layer) {
    // If the layer is empty and was one we'd removed items from originally, remove it
    if (!layer.pageItems.length) layer.remove();
})

But in case you're trying to learn scripting, the easiest way would be more like this:

var doc = app.activeDocument;
// Loop through all pageItems in current document
for (var i = 0; i < doc.pageItems.length; i++) {
    // Identify item and create a new layer for this item
    var item = doc.pageItems[i];
    var layer = doc.layers.add();
    // If an item is named, have the layer inherit that name
    if (item.name) layer.name = item.name;
    // Move the item into the layer, then proceed in loop
    item.move(layer, ElementPlacement.PLACEATBEGINNING);
}

The first might seem far more complicated than it needs to be, but if you had more than one instance where you needed to loop through certain items (pageItems, compoudItems, rasterItems, etc) you'd begin to see how it would slim down the end result far more for complex requirements.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 16, 2021 Jan 16, 2021

Copy link to clipboard

Copied

LATEST

how can i use wat you just typed bro ?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines