मैंने इस बात पर काम किया है कि इस आरोप को काफी सरल तरीके से कैसे किया जाए। मैं एक मल्टीवल्यू पैरामीटर बनाना चाहता था जहां मैं कई फ़ीचर लाइयर्स जोड़ता हूं और फिर प्रत्येक लेयर के लिए एक आईडी फ़ील्ड चुनता हूं। मुझे यह काम कर रहा है, लेकिन मैं काम करने में असमर्थ था कि कैसे क्षेत्र को एक ड्रॉप डाउन सूची बनाऊं, इसलिए उपयोगकर्ता को मैन्युअल रूप से फ़ील्ड नाम दर्ज करना होगा। यहाँ इंटरफ़ेस है:
अगर किसी ने इस समस्या को सुलझाने में कामयाबी हासिल की है या ईएसआरआई के किसी गुरु ने हमें अपने ज्ञान से आशीर्वाद दिया है तो मुझे यह पता लगाना अच्छा लगेगा कि विशिष्ट फ़ील्ड्स को सूचीबद्ध करते हुए, अपने दूसरे कॉलम (साइट आईडी) को ड्रॉप डाउन कैसे करें। अगर आप इसका एक उदाहरण देखना चाहते हैं तो Create TIN टूल पर एक नज़र डालें ।
वैसे भी इस इंटरफ़ेस को बनाने के लिए मैं एक स्क्रिप्ट टूल बनाता हूं और टाइप फीचर लेयर के एक पैरामीटर को जोड़ा और इसे नीचे दिखाए गए अनुसार एक मल्टीवैल्यू पर सेट करता हूं।
मैंने तब शीर्ष पर मान्यता टैब पर क्लिक किया और फिर संपादन बटन। जैसा कि यह पैरामीटर मेरे स्क्रिप्ट टूल में 6 वां पैरामीटर है जिसे मैंने निम्नलिखित कोड अपडेट किया है:
def initializeParameters(self):
"""Refine the properties of a tool's parameters. This method is
called when the tool is opened."""
# Get the 6th parameter
param = self.params[6]
param.datatype = "Value Table"
param.columns = [["Feature Layer","Activity Layer"],["Field","Site ID"]]
return
यह इंटरफ़ेस को मल्टी कॉलम टेबल में रीसेट करता है जो मुझे चाहिए था। जब आप GetParameterAs का उपयोग करते हैं, तो यह मेरे उदाहरण का उपयोग करके निम्नलिखित रिटर्न देता है:
pipeline pid;Dredging did
मैंने कुछ और शोध किया है और अजगर टूलबॉक्स का उपयोग करके उपकरण बनाया है। यह बहुत अच्छी तरह से काम करता है, लेकिन अगर आप वापस जाते हैं और दूसरी आईडी चुनते हैं, तो एक सीमा होती है। मैंने यहाँ जियोनेट पर कोड पोस्ट किया है ।