Copy link to clipboard
Copied
I have searched and have found some scripts that I retrofited for my needs. But here’s the interesting problem I’m having. I’m trying to hide the native created group named “<Group>” inside the Layer “guides/crops”. I have used the script bellow (that I doctored up), but it only works if the groupitems where manually edited in the Layers palette. That group name was automatically created by illustrator, and I assume the bracket “< >” are affecting how the script works. If I change the <Group> name in the layer palette to Group (or any other name), then the script works. How can I make this work on native <Group> names? Working on ILL CS6 and Win10Pro.
FYI, there are only two <Paths> in the layer <Group>. I could try to hide the last 2 index paths inside the <Group>. But on some files this layers has more objects.
Thanks for your help.
var docRef = app.activeDocument;
var layers = docRef.layers;
var myLayer = layers["guides/crops"]; //this defines the layer that you want to get the selection from
//docRef.selection = null; //ensure there is nothing in the document selected already. this way you only get the selection you want.
for(var a=0;a<docRef.groupItems.length;a++){
if (docRef.groupItems[a].name == "<Group>"){
//docRef.groupItems[a].selected = true;
docRef.groupItems[a].hidden= true;
}
}
<Group> means not having a name (an empty string). So you can do this
if (docRef.groupItems[a].name == ""){
docRef.groupItems[a].hidden= true;
}
In adding to the @femkeblanco said, since groups does not have name, it will hide all groups without name in side the layer, "guides/crops".
var docRef = app.activeDocument;
var layers = docRef.layers;
var myLayer = layers["guides/crops"];
for (var a = 0; a < docRef.groupItems.length; a++) {
if (docRef.groupItems[a].name == "") {
docRef.groupItems[a].hidden = true;
}
}
Copy link to clipboard
Copied
<Group> means not having a name (an empty string). So you can do this
if (docRef.groupItems[a].name == ""){
docRef.groupItems[a].hidden= true;
}
Copy link to clipboard
Copied
In adding to the @femkeblanco said, since groups does not have name, it will hide all groups without name in side the layer, "guides/crops".
var docRef = app.activeDocument;
var layers = docRef.layers;
var myLayer = layers["guides/crops"];
for (var a = 0; a < docRef.groupItems.length; a++) {
if (docRef.groupItems[a].name == "") {
docRef.groupItems[a].hidden = true;
}
}
Copy link to clipboard
Copied
Thanks guys! That explains it. I don't script enough to remember from one year to another, but I should have figure that out. For some reason I was transfix on selecting and hiding that particular group layer <Group>, which is actually an empty string without a real name, I see now. This new edit to the script, will globally hide all groups inside that layer. I'm lucky that there are only two groups in that layer, and I don't care (for now) if it gets hidden. I did try a different script snippet and got it to work. Basically the same thing, but more direct. I like the top version one better incase I have a specific group to hide, in the future.
var doc = app.activeDocument;
var aLay = doc.layers['guides/crops'];
aLay.groupItems[0].hidden = true;