वहाँ ArcMap या ArcCatalog में कई परतों के लिए सहजीवन को बदलने का एक तरीका है। मैं एक साथ कई परतों के सहजीवन को बदलना चाहता हूं।
वहाँ ArcMap या ArcCatalog में कई परतों के लिए सहजीवन को बदलने का एक तरीका है। मैं एक साथ कई परतों के सहजीवन को बदलना चाहता हूं।
जवाबों:
संपादित करें आप हाथ में कार्य पूरा करने के लिए ESRI द्वारा प्रदान की गई इस स्क्रिप्ट का उपयोग कर सकते हैं (नीचे के रूप में एक ही विचार):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: वह परत जिस पर सहजीवन लागू किया जाएगा।
फ़ीचर लेयर; रैस्टर लेयर; टिन परत; नेटवर्क विश्लेषण परतin_symbology_layer: इस परत की सहजीवन इनपुट परत पर लागू होती है।
फ़ीचर लेयर; रेखीय परत; टिन परत; नेटवर्क विश्लेषण परत
या इसे स्टैंडअलोन स्क्रिप्टिंग के रूप में विस्तारित करें (विचार आईडीएल):
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_symbology_layer) बनाते हैं जिसे आप डिज़ाइन / शैली के संबंध में बनाए रखते हैं। फिर आप अपनी परतों में से प्रत्येक पर सहानुभूति की परतों को कॉपी करते हैं जैसा कि आपकी सामग्री की तालिका में सूचीबद्ध है।
पिछला उत्तर
आप सामग्री / परत सूची की अपनी तालिका में एक वर्तमान परत से एक शैली का उपयोग कर सकते हैं और इसे अपनी अन्य परतों में लागू कर सकते हैं।
प्रत्येक बाद की परत के लिए (अपनी इच्छित शैली परत के नीचे)> राइट क्लिक> गुण> सिम्बोलॉजी> अन्य परत से आयात शैली
मुझे भी यही समस्या थी और मुझे इसका एक और समाधान मिला। यह सरल और वास्तव में व्यावहारिक है, इसे * .lyr फ़ाइल के निर्माण की भी आवश्यकता नहीं है।
ArcGIS ModelBuilder के संपादक बॉक्स में, मैंने नीचे की प्रक्रिया को डिज़ाइन किया है:
नोट: यदि आप एक ही समय में विभिन्न प्रकार की ज्यामितीय परतों का उपयोग करते हैं तो यह संभवत: काम नहीं करेगा। यदि आप एक ही नाम से परतों पर उपयोग करते हैं तो यह अच्छी तरह से काम नहीं करता है। मैंने गैर वेक्टर परतों के साथ प्रयास नहीं किया।
मॉडल के अजगर को निर्यात की गई स्क्रिप्ट है:
# 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 के संदेश से ठीक पहले, मैंने @Roy से जानकारी का उपयोग करके अपना समाधान तैयार किया, जिसे मैं ArcToolbox स्क्रिप्ट में शामिल कर सकता हूं। निचे देखो:
# 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
मैं इस अवधारणा को टूलबार पर 10.1 पायथन ऐड-इन के लिए एक संभावित उपकरण के रूप में देख सकता था।
मैं नीचे दिए गए टूलबॉक्स का उपयोग करते हुए एक बार में कई परत सीबम को सक्षम करने के लिए एक बहुत ही सरल तरीके से आया हूं। आपके द्वारा इस टूलबॉक्स को जोड़ने के बाद, एकल सिम्बोलॉजी लेयर को खींचें और छोड़ें और फिर उन सभी लेयर्स को खींचें और छोड़ें जिन्हें आप सिम्बॉलॉजी (लक्ष्य) पर लागू करना चाहते हैं। जियो-प्रकार (रेखाओं, बिंदुओं, ध्रुवों) के मिलान के बारे में सामान्य नियम यहां लागू होते हैं। एक बार उपकरण चलाने के बाद, ऐसा प्रतीत होगा कि कुछ नहीं हुआ। अपने डिस्प्ले (F5) को रीफ्रेश करें - डिस्प्ले मैचिंग सिंबल के साथ अपडेट होगा। यह गुण देखने के लिए एक परत पर क्लिक करें और "ओके" पर क्लिक करें और टीओसी प्रतीक अपडेट करेगा।
यहां टूलबॉक्स के लिए जिप फाइल डाउनलोड करें।
अगर आसान है तो यह स्क्रिप्ट है:
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)