Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
3

Select All Layers Except Layer Groups and Text Layer!

Community Beginner ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

Hello, is there any way to select all layers except layer group and layer text?

 

I wish there was some way to select all the layers: layer, adjustment layer, mask layer, and so on. All layers except layer groups and text layers

 

The first option I found was using Auto Select activated and selecting the "Layer" option, and it even works but the layers that are not visible do not show them, so it does not solve the problem itself.

 

57261fc5-148c-4c11-81ea-12e0c9412ad3.png

The second option was to select all the layers and deactivate the groups manually, which is also a bit of a hassle when you have a lot of subgroups.

 

So the result is that I'm still looking for a possible solution, better than the previous ones mentioned, if anyone has suggestions and tips, I would be very grateful for the contribution!

 

That would be the expected result!

 

Screenshot 2024-01-14 130359.png

TOPICS
Actions and scripting , Windows

Views

852
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

correct answers 1 Correct answer

Community Expert , Jan 14, 2024 Jan 14, 2024

I think that I know of a script that could be modified... I'll post back later when I have time.

 

EDIT: Courtesy of @jazz-y 

 

Selecting all required layers, which is a bit verbose:

 

 

//community.adobe.com/t5/photoshop/select-only-the-text-layers/m-p/11017843
// jazz-y

// Select ALL Layers of Specific Layer Kind - Works with layer sets and nested sets!

var AM = new ActionManager
    if (app.documents.length) selectLayerKind ()

function selectLayerKind() {
    var output = [],
        from 
...

Votes

Translate
Adobe
Community Expert ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

If you look at the top of the Layers panel, you'll see a dropdown menu for Kind. You can filter your layers in a variety of ways. If you have different types of layers that you might want to select at the same time, then you could label them with a color, use Kind to filter by color and set the color to the one that is used for these layers. To add a color label to a layer, right-click to the right of the layer name to display the contextual menu. At the bottom, you'll see the colors that you can apply as a label (including No Color). When the layers are filtered to show a particular kind, then you can use Select > All Layers to select all of the layers currently filtered. Photoshop won't select the ones that aren't showing because of the filter.

Votes

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
People's Champ ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

quote

If you look at the top of the Layers panel, you'll see a dropdown menu for Kind. You can filter your layers in a variety of ways. If you have different types of layers that you might want to select at the same time, then you could label them with a color, use Kind to filter by color and set the color to the one that is used for these layers. To add a color label to a layer, right-click to the right of the layer name to display the contextual menu. At the bottom, you'll see the colors that you can apply as a label (including No Color). When the layers are filtered to show a particular kind, then you can use Select > All Layers to select all of the layers currently filtered. Photoshop won't select the ones that aren't showing because of the filter.


By @Myra Ferguson

 

As far as I remember, several types can be specified in the filter at the same time.
 
 
 

Votes

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
Community Expert ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

If it helps, here are the kinds of layers that you can select:

MyraFerguson_0-1705272409227.png

 

Assigning a color label is helpful way to specify certain layers--especially if you have other layers of the same kind that you don't want selected.

Votes

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
Community Beginner ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

The option you mentioned is very interesting, I even tested it, I did what you recommended, I selected the layers I wanted using the Kind function and put the color red in all of them, as you can see in the image below

Screenshot 2024-01-14 211003.png


And the Kind by Mode option selected almost all the layers you wanted except those that were in some other mode, the interesting thing about this function would be if the Mode option had another option called All Modes, so you could select the layers regardless of the mode they were in. If so, that would be the perfect option for me.

Screenshot-(12).jpg


But I'm already using your suggestion in my work day, and it's been very useful, even more than the suggestions I mentioned above, thank you very much for the tip!

Votes

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
Community Expert ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

I'm so glad that helped! 🙂

 

If you set the dropdown menu back to Kind, then you can use Select > All Layers to select all the layers.

Votes

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
Community Expert ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

I would use a script, but the trick will be finding or writing it!

Votes

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
Community Beginner ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

Unfortunately, I've been looking for it for hours but I haven't found it, I believe it doesn't exist and the only option left is to write it or even get around the situation with options like the one mentioned by @Myra Ferguson 

 

Would the script for this type of function be too much work to write? We would have to filter out all the other options that we don't want, right!

Votes

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
Community Expert ,
Jan 14, 2024 Jan 14, 2024

Copy link to clipboard

Copied

I think that I know of a script that could be modified... I'll post back later when I have time.

 

EDIT: Courtesy of @jazz-y 

 

Selecting all required layers, which is a bit verbose:

 

 

//community.adobe.com/t5/photoshop/select-only-the-text-layers/m-p/11017843
// jazz-y

// Select ALL Layers of Specific Layer Kind - Works with layer sets and nested sets!

var AM = new ActionManager
    if (app.documents.length) selectLayerKind ()

function selectLayerKind() {
    var output = [],
        from = AM.getDocProperty('hasBackgroundLayer') ? 0 : 1,
        to = AM.getDocProperty('numberOfLayers')
        
        if (to) AM.deselectLayers ()
        
    for (var i = from; i <= to; i++) {

        // Any Layer = 0
        // Pixel Layer  = 1 (including Background layer)
        // Adjustment Layer = 2
        // Text Layer = 3
        // Vector Layer = 4
        // SmartObject Layer = 5
        // Video Layer = 6
        // LayerGroup Layer = 7
        // 3D Layer = 8
        // Gradient Layer = 9
        // Pattern Layer = 10
        // Solid Color Layer = 11
        // Background Layer = 12
        // HiddenSectionBounder = 13

        if (AM.getLayerProperty('layerKind', i) == 1 || AM.getLayerProperty('layerKind', i) == 2 || AM.getLayerProperty('layerKind', i) == 5 || AM.getLayerProperty('layerKind', i) == 6 || AM.getLayerProperty('layerKind', i) == 8 || AM.getLayerProperty('layerKind', i) == 9 || AM.getLayerProperty('layerKind', i) == 10 || AM.getLayerProperty('layerKind', i) == 11 || AM.getLayerProperty('layerKind', i) == 12)
        AM.selectLayerByIndex(i, true)
    }
}

function ActionManager() {

    this.getDocProperty = function (property) {
        property = s2t(property)
        var ref = new ActionReference()
        ref.putProperty(s2t("property"), property)
        ref.putEnumerated(s2t("document"), s2t("ordinal"), s2t("targetEnum"))
        return getDescValue(executeActionGet(ref), property)
    }

    this.getLayerProperty = function (property, index) {
        property = s2t(property)
        var ref = new ActionReference()
        ref.putProperty(s2t("property"), property)
        ref.putIndex(s2t("layer"), index)
        return getDescValue(executeActionGet(ref), property)
    }

    this.selectLayerByIndex = function (idx, addToSelection) {
        var desc = new ActionDescriptor()
        var ref = new ActionReference()
        ref.putIndex(s2t("layer"), idx)
        desc.putReference(s2t("null"), ref)
        if (addToSelection) desc.putEnumerated(s2t("selectionModifier"), s2t("addToSelectionContinuous"), s2t("addToSelection"))
        executeAction(s2t("select"), desc, DialogModes.NO);
    }

    this.deselectLayers = function () {
        var desc = new ActionDescriptor()
        var ref = new ActionReference()
        ref.putEnumerated(s2t("layer"), s2t("ordinal"), s2t("targetEnum"))
        desc.putReference(s2t("null"), ref)
        executeAction(s2t("selectNoLayers"), desc, DialogModes.NO)
    }

    function getDescValue(desc, property) {

        switch (desc.getType(property)) {
            case DescValueType.OBJECTTYPE:
                return (desc.getObjectValue(property));
                break;
            case DescValueType.LISTTYPE:
                return desc.getList(property);
                break;
            case DescValueType.REFERENCETYPE:
                return desc.getReference(property);
                break;
            case DescValueType.BOOLEANTYPE:
                return desc.getBoolean(property);
                break;
            case DescValueType.STRINGTYPE:
                return desc.getString(property);
                break;
            case DescValueType.INTEGERTYPE:
                return desc.getInteger(property);
                break;
            case DescValueType.LARGEINTEGERTYPE:
                return desc.getLargeInteger(property);
                break;
            case DescValueType.DOUBLETYPE:
                return desc.getDouble(property);
                break;
            case DescValueType.ALIASTYPE:
                return desc.getPath(property);
                break;
            case DescValueType.CLASSTYPE:
                return desc.getClass(property);
                break;
            case DescValueType.UNITDOUBLE:
                return (desc.getUnitDoubleValue(property));
                break;
            case DescValueType.ENUMERATEDTYPE:
                return (t2s(desc.getEnumerationValue(property)));
                break;
            case DescValueType.RAWTYPE:
                var tempStr = desc.getData(property);
                var rawData = new Array();
                for (var tempi = 0; tempi < tempStr.length; tempi++) {
                    rawData[tempi] = tempStr.charCodeAt(tempi);
                }
                return rawData;
                break;
            default:
                break;
        };
    }

    function s2t(s) { return stringIDToTypeID(s) }
    function t2s(t) { return typeIDToStringID(t) }
}

 

 

Or not selecting Text and Layer Groups, more concise:

 

 

//community.adobe.com/t5/photoshop/select-only-the-text-layers/m-p/11017843
// jazz-y

// Select ALL Layers of Specific Layer Kind - Works with layer sets and nested sets!

var AM = new ActionManager
    if (app.documents.length) selectLayerKind ()

function selectLayerKind() {
    var output = [],
        from = AM.getDocProperty('hasBackgroundLayer') ? 0 : 1,
        to = AM.getDocProperty('numberOfLayers')
        
        if (to) AM.deselectLayers ()
        
    for (var i = from; i <= to; i++) {

        // Any Layer = 0
        // Pixel Layer  = 1 (including Background layer)
        // Adjustment Layer = 2
        // Text Layer = 3
        // Vector Layer = 4
        // SmartObject Layer = 5
        // Video Layer = 6
        // LayerGroup Layer = 7
        // 3D Layer = 8
        // Gradient Layer = 9
        // Pattern Layer = 10
        // Solid Color Layer = 11
        // Background Layer = 12
        // HiddenSectionBounder = 13

        if (AM.getLayerProperty('layerKind', i) != 3 && AM.getLayerProperty('layerKind', i) != 7) AM.selectLayerByIndex (i,true) // Change the number as above!
    }
}

function ActionManager() {

    this.getDocProperty = function (property) {
        property = s2t(property)
        var ref = new ActionReference()
        ref.putProperty(s2t("property"), property)
        ref.putEnumerated(s2t("document"), s2t("ordinal"), s2t("targetEnum"))
        return getDescValue(executeActionGet(ref), property)
    }

    this.getLayerProperty = function (property, index) {
        property = s2t(property)
        var ref = new ActionReference()
        ref.putProperty(s2t("property"), property)
        ref.putIndex(s2t("layer"), index)
        return getDescValue(executeActionGet(ref), property)
    }

    this.selectLayerByIndex = function (idx, addToSelection) {
        var desc = new ActionDescriptor()
        var ref = new ActionReference()
        ref.putIndex(s2t("layer"), idx)
        desc.putReference(s2t("null"), ref)
        if (addToSelection) desc.putEnumerated(s2t("selectionModifier"), s2t("addToSelectionContinuous"), s2t("addToSelection"))
        executeAction(s2t("select"), desc, DialogModes.NO);
    }

    this.deselectLayers = function () {
        var desc = new ActionDescriptor()
        var ref = new ActionReference()
        ref.putEnumerated(s2t("layer"), s2t("ordinal"), s2t("targetEnum"))
        desc.putReference(s2t("null"), ref)
        executeAction(s2t("selectNoLayers"), desc, DialogModes.NO)
    }

    function getDescValue(desc, property) {

        switch (desc.getType(property)) {
            case DescValueType.OBJECTTYPE:
                return (desc.getObjectValue(property));
                break;
            case DescValueType.LISTTYPE:
                return desc.getList(property);
                break;
            case DescValueType.REFERENCETYPE:
                return desc.getReference(property);
                break;
            case DescValueType.BOOLEANTYPE:
                return desc.getBoolean(property);
                break;
            case DescValueType.STRINGTYPE:
                return desc.getString(property);
                break;
            case DescValueType.INTEGERTYPE:
                return desc.getInteger(property);
                break;
            case DescValueType.LARGEINTEGERTYPE:
                return desc.getLargeInteger(property);
                break;
            case DescValueType.DOUBLETYPE:
                return desc.getDouble(property);
                break;
            case DescValueType.ALIASTYPE:
                return desc.getPath(property);
                break;
            case DescValueType.CLASSTYPE:
                return desc.getClass(property);
                break;
            case DescValueType.UNITDOUBLE:
                return (desc.getUnitDoubleValue(property));
                break;
            case DescValueType.ENUMERATEDTYPE:
                return (t2s(desc.getEnumerationValue(property)));
                break;
            case DescValueType.RAWTYPE:
                var tempStr = desc.getData(property);
                var rawData = new Array();
                for (var tempi = 0; tempi < tempStr.length; tempi++) {
                    rawData[tempi] = tempStr.charCodeAt(tempi);
                }
                return rawData;
                break;
            default:
                break;
        };
    }

    function s2t(s) { return stringIDToTypeID(s) }
    function t2s(t) { return typeIDToStringID(t) }
}

 

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

 

Votes

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
Community Beginner ,
Jan 15, 2024 Jan 15, 2024

Copy link to clipboard

Copied

And as you can see, it works perfectly!

 

Screenshot 2024-01-15 065809.png


It will save me a lot of time with the script, Thanks again @Stephen Marsh 

 
 

Votes

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
Community Expert ,
Jan 15, 2024 Jan 15, 2024

Copy link to clipboard

Copied

LATEST

You're welcome (thanks to jazz-y)!

Votes

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