Skip to main content
Desbrina
Inspiring
April 15, 2022
Question

Scripting - Get layer when in a group

  • April 15, 2022
  • 3 replies
  • 1266 views

So i know i can use the below to get a layer

 

var layerName = "Text BG";
app.activeDocument.activeLayer = layers[layerName];

 

This works fine when the layer isn't within a group, but if it is I get an error

Error 1302: No such element

Line: 53 ->  app.activeDocument.activeLayer = layers[layerName];

 

The layer is within a group called Text Group, how do i go about getting the group correctly?

This topic has been closed for replies.

3 replies

Chuck Uebele
Community Expert
Community Expert
April 16, 2022

Yes, as the others have mentioned, you need to select the group to get the layer within it. 

Stephen Marsh
Community Expert
Community Expert
April 15, 2022

@Desbrina I believe that @Kukurykus has provided one possible solution which you can mark as the correct answer. 

 

In my journey of learning scripting, I have collected various useful snippets. The last example in this link uses layer index:

https://gist.github.com/MarshySwamp/229a0676666a44cdaa007da1cfddc0b7

 

The following is basically the same as the reply from Kukurykus with a slightly different syntax, swapping the layer index numbers in the GitHub Gist example above for names. 

 

activeDocument.activeLayer = activeDocument.layerSets["Text Group"].layers["Text BG"];

 

 

Kukurykus
Legend
April 15, 2022

layers is undefined

Desbrina
DesbrinaAuthor
Inspiring
April 15, 2022

Layers is fine, as i said it works fine if the layer isn't in a group.

 

Layers is defined using

var layers = app.activeDocument.layers;

earlier in the script

Kukurykus
Legend
April 15, 2022

 

with(activeDocument)
	activeLayer = layerSets['Text Group'].artLayers['Text Bg']