Existe uma maneira de alterar a simbologia para várias camadas no ArcMap ou ArcCatalog. Eu quero mudar a simbologia de várias camadas ao mesmo tempo.
Existe uma maneira de alterar a simbologia para várias camadas no ArcMap ou ArcCatalog. Eu quero mudar a simbologia de várias camadas ao mesmo tempo.
Respostas:
Editar Você pode usar este script fornecido pela ESRI para concluir a tarefa em questão (mesma ideia que abaixo):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: a camada à qual a simbologia será aplicada.
Camada de recursos; Camada de varredura; Camada TIN; Camada de análise de redein_symbology_layer: a simbologia desta camada é aplicada à camada de entrada.
Camada de recursos; Camada de varredura; Camada TIN; Camada de análise de rede
Ou estenda isso na forma de script independente (pense em 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)
Em essência, você cria uma camada de simbologia (camada_de_simologia) que mantém em relação ao design / estilo. Em seguida, copie essa simbologia de camadas para cada uma das outras camadas, conforme listado no seu índice.
Resposta Anterior
Você pode usar um estilo de uma camada atual em sua lista de índice / camada e aplicá-lo a outras camadas.
Para cada camada subsequente (abaixo da camada de estilo pretendida)> clique com o botão direito do mouse> propriedades> simbologia> importar estilo de outra camada
Eu tive o mesmo problema e encontrei outra solução. É simples e realmente prático, nem precisa da criação de um arquivo * .lyr.
Na caixa do editor do ArcGIS ModelBuilder, projetei o processo abaixo:
Notas: Provavelmente não funcionará se você usar ao mesmo tempo camadas de diferentes tipos de geometrias. Não funciona bem se você usar camadas de uma só vez com o mesmo nome. Eu não tentei com camadas não vetoriais.
O script exportado para python do modelo é:
# 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)
Antes da mensagem de @Aaron, usei as informações do @Roy para criar minha própria solução que eu poderia incorporar no script do ArcToolbox. Ver abaixo:
# 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
Eu pude ver esse conceito como uma ferramenta potencial para um Suplemento Python 10.1 na barra de ferramentas.
Eu vim com uma maneira bastante simples de ativar a simbologia de múltiplas camadas de uma só vez, usando a caixa de ferramentas vinculada abaixo. Depois de adicionar esta caixa de ferramentas, arraste e solte a camada de simbologia única e arraste e solte todas as camadas às quais deseja aplicar a simbologia (destinos). As regras gerais sobre correspondência do tipo geográfico (linhas, pontos, polys) provavelmente se aplicam aqui. Depois que a ferramenta for executada, ela aparecerá como nada aconteceu. Atualize sua tela (F5) - a tela será atualizada com a simbologia correspondente. Clique em uma camada para ver suas propriedades e clique em "OK" e o símbolo do sumário será atualizado.
Faça o download do arquivo Zip da caixa de ferramentas aqui.
Aqui está o script, se isso for mais 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)