Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Is there a way to change symbology for multiple layers in ArcMap or ArcCatalog. I want to change the symbology of multiple layers at once.

share|improve this question
It baffles me why this functionality isn't built in to ArcMap... –  jbaums Jun 16 '14 at 4:11

2 Answers 2

up vote 4 down vote accepted

Edit You can use this script provided by ESRI to complete the task at hand (same idea as below):

import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")

in_layer : The layer to which the symbology will be applied.
Feature Layer;Raster Layer; TIN Layer;Network Analysis Layer

in_symbology_layer : The symbology of this layer is applied to the Input Layer.
Feature Layer; Raster Layer;TIN Layer; Network Analysis Layer

Or extend this in the form of standalone scripting (think IDLE):

import arcpy
from arcpy import env

# Set the current workspace
env.workspace = "path/to/workspace"

# Set layer to apply symbology to
inputLayers = ["in_layer_first.lyr","in_layer_second.lyr","in_layer_third.lyr"]

# Set layer that output symbology will be based on
symbologyLayer = "in_symbology_layer.lyr"

# Apply the symbology from the symbology layer to the input layer
for layer in inputLayers:
    arcpy.ApplySymbologyFromLayer_management (layer, symbologyLayer)

In essence, you create a symbology layer (in_symbology_layer) that you maintain with respect to design/style. Then you copy that layers symbology on to each of your other layers as listed in your table of contents.

Previous Answer

You can use a style from a current layer in your table of contents/layer list and apply it to your other layers.

For each subsequent layer (below your intended style layer) > right click > properties > symbology > import style from other layer

share|improve this answer
Hi Michael,Thanks for the answer but I was looking to do it for multiple layers at once. –  Ramakrishna Billakanti Jan 16 '12 at 22:13
Ramakrishna, I have edited my answer with hopes that you find a better solution via arcpy. –  Michael Markieta Jan 17 '12 at 6:09

I had the same problem and I found another solution. It is simple and really practical, it doesn’t even need the creation of a *.lyr file.

In ArcGIS ModelBuilder editor box, I designed the below process:

  1. Create a variable, defining the data type to ‘layer’. In its properties set as “a list of values” and “Model parameter”. (Optional: Rename the object to “Layers to symbolize”, to an easier identification).
  2. Create a variable, defining the data type to ‘layer’. In its properties set as “Model parameter”. (Optional: Rename it to “Symbology Layer”).
  3. Add the Tool “Apply Symbology From Layer”, usually in ‘C:\Program Files\ArcGIS\Desktop10.2\ArcToolbox\Toolboxes\ Data Management Tools.tbx\Layers and Table Views’. (Optional: Rename the output object to “Symbolized Layers”).
  4. In Properties of the tool ‘Apply Symbology From Layer’ check as Preconditions: “Layers to symbolize” and “Symbology Layer”.
  5. Connect “Layers to symbolize” to the tool setting it as Input Layer.
  6. Connect “Symbology Layer” to the tool setting it as Input Layer.
  7. Save and close the model editor window.
  8. Opening the model, a table will appear.
  9. Drag the layer to be used as symbology's template, from the table of contents (TOC) of map project and drop it in the respective table field. Click ‘check values’ button.
  10. Select multiple layers of the TOC, drag and drop them to respective table field. Click ‘check values’ button.
  11. Run it.
  12. Click F5 to refresh the map display.

Notes: It will probably not work if you use at the same time layers of different types of geometries. It does not work well if you use at once layers with the same name. I did not tried with non vector layers.

Steps in the model builder.

Steps when running the model.

The exported script to python of the model is:

 # Import arcpy module
import arcpy

# Script arguments
Layers_to_symbolize = arcpy.GetParameterAsText(0)

Symbology_Layer = arcpy.GetParameterAsText(1)

# Local variables:
Symbolized_Layers = Layers_to_symbolize

# Process: Apply Symbology From Layer
arcpy.ApplySymbologyFromLayer_management(Layers_to_symbolize, Symbology_Layer)
share|improve this answer
At least for ArcGIS 10.2, step 6 should read "Connect “Symbology Layer” to the tool setting it as Symbology Layer" –  jbaums Jun 16 '14 at 4:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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