ArcMap veya ArcCatalog'da birden çok katman için sembolojiyi değiştirmenin bir yolu var mı? Birden çok katmanın sembolojisini aynı anda değiştirmek istiyorum.
ArcMap veya ArcCatalog'da birden çok katman için sembolojiyi değiştirmenin bir yolu var mı? Birden çok katmanın sembolojisini aynı anda değiştirmek istiyorum.
Yanıtlar:
Düzenle Elinizdeki görevi tamamlamak için ESRI tarafından sağlanan bu komut dosyasını kullanabilirsiniz (aşağıdaki ile aynı fikir):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: Sembolojinin uygulanacağı katman.
Özellik Katmanı; Raster Katmanı; TIN Katmanı; Ağ Analiz Katmanıin_symbology_layer: Bu katmanın sembolojisi Giriş Katmanına uygulanır.
Özellik Katmanı; Raster Katman; TIN Katman; Ağ Analizi Katmanı
Veya bunu bağımsız komut dosyası oluşturma biçiminde genişletin (IDLE düşünün):
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)
Özünde, tasarım / stile göre sürdürdüğünüz bir semboloji katmanı (in_symbology_layer) oluşturursunuz. Ardından, bu katman sembolojisini içindekiler tablosunda listelendiği gibi diğer katmanlarınızın her birine kopyalayın.
Önceki Cevap
İçindekiler / katman listenizdeki geçerli bir katmandan bir stil kullanabilir ve bunu diğer katmanlarınıza uygulayabilirsiniz.
Sonraki her katman için (amaçladığınız stil katmanının altında)> sağ tıklayın> özellikler> semboloji> stili diğer katmandan içe aktarın
Aynı sorunu yaşadım ve başka bir çözüm buldum. Basit ve gerçekten pratik, bir * .lyr dosyası oluşturulmasına bile gerek yok.
ArcGIS ModelBuilder editör kutusunda aşağıdaki süreci tasarladım:
Notlar: Aynı anda farklı türde geometrilerin katmanlarını kullanırsanız muhtemelen çalışmaz. Aynı ada sahip bir kerede katmanlar kullanırsanız iyi çalışmaz. Vektör olmayan katmanlarla denemedim.
Modelin pythonuna dışa aktarılan komut dosyası:
# 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)
@Aaron'un mesajından hemen önce, @Roy'daki bilgileri, am ArcToolbox komut dosyasına dahil edebileceğim kendi çözümümü oluşturmak için kullandım. Aşağıya bakınız:
# 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
Bu kavramı, araç çubuğundaki 10.1 Python Eklentisi için potansiyel bir araç olarak görebiliyordum.
Aşağıda bağlantılı araç kutusunu kullanarak birden çok katman sembolojisini tek seferde etkinleştirmenin oldukça basit bir yolunu buldum. Bu araç kutusunu ekledikten sonra, tek semboloji katmanını sürükleyip bırakın ve ardından sembolojiyi (hedefler) uygulamak istediğiniz tüm katmanları sürükleyip bırakın. Coğrafi türün eşleştirilmesine ilişkin genel kurallar (çizgiler, noktalar, polisler) büyük olasılıkla burada geçerlidir. Araç çalıştıktan sonra hiçbir şey olmadıkça görünür. Ekranınızı yenileyin (F5) - ekran eşleşen semboloji ile güncellenir. Özelliklerini görüntülemek için bir katmanı tıklayın ve "Tamam" ı tıklayın, TOK sembolü güncellenecektir.
Araç kutusu için Zip dosyasını buradan indirin.
Bu daha kolaysa komut dosyası:
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)