Esiste un modo per modificare la simbologia per più livelli in ArcMap o ArcCatalog. Voglio cambiare la simbologia di più livelli contemporaneamente.
Esiste un modo per modificare la simbologia per più livelli in ArcMap o ArcCatalog. Voglio cambiare la simbologia di più livelli contemporaneamente.
Risposte:
Modifica È possibile utilizzare questo script fornito da ESRI per completare l'attività a portata di mano (stessa idea di seguito):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: il livello a cui verrà applicata la simbologia.
Livello funzionalità; Livello raster; TIN Layer; Network Analysis Layerin_symbology_layer: la simbologia di questo livello viene applicata al livello di input.
Livello caratteristica; Strato raster; strato TIN; Livello di analisi della rete
Oppure estendi questo sotto forma di script autonomo (pensa 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 sostanza, si crea un livello di simbologia (in_symbology_layer) che si mantiene rispetto a design / stile. Quindi copi la simbologia dei livelli su ciascuno degli altri livelli come elencato nel sommario.
Risposta precedente
È possibile utilizzare uno stile da un livello corrente nel sommario / elenco dei livelli e applicarlo agli altri livelli.
Per ogni livello successivo (sotto il livello di stile desiderato)> fare clic con il tasto destro> proprietà> simbologia> importa stile da un altro livello
Ho avuto lo stesso problema e ho trovato un'altra soluzione. È semplice e molto pratico, non ha nemmeno bisogno della creazione di un file * .lyr.
Nella casella dell'editor ArcGIS ModelBuilder, ho progettato il processo seguente:
Note: Probabilmente non funzionerà se si utilizzano contemporaneamente strati di diversi tipi di geometrie. Non funziona bene se si utilizzano contemporaneamente layer con lo stesso nome. Non ho provato con livelli non vettoriali.
Lo script esportato su Python del modello è:
# 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)
Appena prima del messaggio di @Aaron, ho usato le informazioni di @Roy per creare la mia soluzione che avrei potuto incorporare nello script di ArcToolbox. Vedi sotto:
# 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
Ho potuto vedere questo concetto come un potenziale strumento per un componente aggiuntivo 10.1 Python sulla barra degli strumenti.
Ho escogitato un modo abbastanza semplice per abilitare contemporaneamente la simbologia a più livelli utilizzando la casella degli strumenti collegata di seguito. Dopo aver aggiunto questa casella degli strumenti, trascinare e rilasciare il singolo livello di simbologia, quindi trascinare tutti i livelli a cui si desidera applicare la simbologia (destinazioni). Regole generali sulla corrispondenza del tipo geografico (linee, punti, polis) probabilmente si applicano qui. Una volta eseguito lo strumento, apparirà come se nulla fosse successo. Aggiorna il display (F5): il display si aggiornerà con la simbologia corrispondente. Fare clic su un livello per visualizzarne le proprietà e fare clic su "OK" e il simbolo TOC verrà aggiornato.
Scarica qui il file zip per la casella degli strumenti.
Ecco lo script se è più semplice:
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)