Existe-t-il un moyen de modifier la symbologie de plusieurs couches dans ArcMap ou ArcCatalog. Je veux changer la symbologie de plusieurs couches à la fois.
Existe-t-il un moyen de modifier la symbologie de plusieurs couches dans ArcMap ou ArcCatalog. Je veux changer la symbologie de plusieurs couches à la fois.
Réponses:
Modifier Vous pouvez utiliser ce script fourni par ESRI pour terminer la tâche à accomplir (même idée que ci-dessous):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: la couche à laquelle la symbologie sera appliquée.
Couche d'entités; couche raster; Couche TIN; Couche d'analyse de réseauin_symbology_layer: la symbologie de cette couche est appliquée à la couche d'entrée.
Couche de fonctionnalités; Couche raster; Couche TIN; Couche d'analyse de réseau
Ou étendez ceci sous forme de script autonome (pensez 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 substance, vous créez une couche de symbologie (in_symbology_layer) que vous conservez en ce qui concerne la conception / le style. Ensuite, vous copiez la symbologie de ces couches sur chacune de vos autres couches, comme indiqué dans votre table des matières.
Réponse précédente
Vous pouvez utiliser un style d'un calque actuel dans votre table des matières / liste des calques et l'appliquer à vos autres calques.
Pour chaque couche suivante (sous la couche de style souhaitée)> clic droit> propriétés> symbologie> importer le style d'une autre couche
J'ai eu le même problème et j'ai trouvé une autre solution. C'est simple et vraiment pratique, il n'a même pas besoin de créer un fichier * .lyr.
Dans la boîte de l'éditeur ArcGIS ModelBuilder, j'ai conçu le processus ci-dessous:
Remarques: Cela ne fonctionnera probablement pas si vous utilisez en même temps des couches de différents types de géométries. Cela ne fonctionne pas bien si vous utilisez simultanément des calques portant le même nom. Je n'ai pas essayé avec des couches non vectorielles.
Le script exporté en python du modèle est:
# 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)
Juste avant le message de @Aaron, j'ai utilisé les informations de @Roy pour créer ma propre solution que je pouvais incorporer dans un script ArcToolbox. Voir ci-dessous:
# 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
Je pourrais voir ce concept comme un outil potentiel pour un complément Python 10.1 dans la barre d'outils.
J'ai trouvé un moyen assez simple d'activer la symbologie à plusieurs couches à la fois en utilisant la boîte à outils liée ci-dessous. Après avoir ajouté cette boîte à outils, faites glisser et déposez la couche de symbologie unique, puis faites glisser et déposez toutes les couches auxquelles vous souhaitez appliquer la symbologie (cibles). Les règles générales sur la correspondance du type géographique (lignes, points, polys) s'appliquent probablement ici. Une fois l'outil exécuté, il apparaîtra comme rien ne s'est passé. Actualisez votre affichage (F5) - l'affichage sera mis à jour avec la symbologie correspondante. Cliquez sur un calque pour afficher ses propriétés et cliquez sur "OK" et le symbole TOC sera mis à jour.
Téléchargez le fichier Zip de la boîte à outils ici.
Voici le script si c'est plus simple:
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)