¿Hay alguna manera de cambiar la simbología de varias capas en ArcMap o ArcCatalog? Quiero cambiar la simbología de varias capas a la vez.
¿Hay alguna manera de cambiar la simbología de varias capas en ArcMap o ArcCatalog? Quiero cambiar la simbología de varias capas a la vez.
Respuestas:
Editar Puede usar este script proporcionado por ESRI para completar la tarea en cuestión (la misma idea que a continuación):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: la capa a la que se aplicará la simbología.
Capa de funciones; Capa de trama; Capa TIN; Capa de análisis de redin_symbology_layer: la simbología de esta capa se aplica a la capa de entrada.
Capa de funciones; Capa de trama; Capa de TIN; Capa de análisis de red
O extienda esto en forma de secuencias de comandos independientes (piense 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)
En esencia, crea una capa de simbología (in_symbology_layer) que mantiene con respecto al diseño / estilo. Luego copie la simbología de esas capas en cada una de sus otras capas como se enumera en su tabla de contenido.
Respuesta anterior
Puede usar un estilo de una capa actual en su tabla de contenido / lista de capas y aplicarlo a sus otras capas.
Para cada capa posterior (debajo de la capa de estilo deseada)> haga clic con el botón derecho> propiedades> simbología> importar estilo desde otra capa
Tuve el mismo problema y encontré otra solución. Es simple y realmente práctico, ni siquiera necesita la creación de un archivo * .lyr.
En el cuadro de editor de ArcGIS ModelBuilder, diseñé el siguiente proceso:
Notas: Probablemente no funcionará si usa al mismo tiempo capas de diferentes tipos de geometrías. No funciona bien si usa de una vez capas con el mismo nombre. No probé con capas que no son vectores.
El script exportado a python del modelo es:
# 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)
Justo antes del mensaje de @Aaron, utilicé la información de @Roy para crear mi propia solución que podría incorporar al script de ArcToolbox. Vea abajo:
# Import modules
import arcpy
#Get the current Map Document
mxd = arcpy.mapping.MapDocument("CURRENT")
# Script arguments
Template_Layer = arcpy.GetParameterAsText(0)
LayerList = arcpy.GetParameterAsText(1)
Layers_to_Symbolize = LayerList.split(";")
# Process: Apply Symbology From Layer
for UpdateLayer in Layers_to_Symbolize:
arcpy.AddMessage("Updating: " + UpdateLayer)
arcpy.ApplySymbologyFromLayer_management(UpdateLayer,Template_Layer)
# Refresh the Table of Contents to reflect the change
arcpy.RefreshTOC()
#Delete the MXD from memory
del mxd
Podría ver este concepto como una herramienta potencial para un complemento de Python 10.1 en la barra de herramientas.
Se me ocurrió una forma bastante simple de habilitar la simbología de múltiples capas a la vez usando la caja de herramientas vinculada a continuación. Después de agregar esta caja de herramientas, arrastre y suelte la capa de simbología única y luego arrastre y suelte todas las capas a las que desea aplicar la simbología (objetivos). Las reglas generales sobre el tipo geográfico coincidente (líneas, puntos, polis) probablemente se apliquen aquí. Una vez que la herramienta se haya ejecutado, aparecerá como si nada hubiera pasado. Actualice su pantalla (F5): la pantalla se actualizará con la simbología correspondiente. Haga clic en una capa para ver sus propiedades y haga clic en "Aceptar" y el símbolo TOC se actualizará.
Descargue el archivo Zip de la caja de herramientas aquí.
Aquí está el script si eso es más fácil:
import arcpy
# Script arguments
Target_Layers = arcpy.GetParameterAsText(0)
if Target_Layers == '#' or not Target_Layers:
Target_Layers = "LayersToBeChanged" # provide a default value if unspecified
Symbology_Layer = arcpy.GetParameterAsText(1)
if Symbology_Layer == '#' or not Symbology_Layer:
Symbology_Layer = "SymbologyLayer" # provide a default value if unspecified
# Local variables:
Output_Symbology = Symbology_Layer
# Process: Apply Symbology From Layer (3)
arcpy.ApplySymbologyFromLayer_management(Target_Layers, Symbology_Layer)