ฉันได้ทำวิธีการที่จะทำเช่นนี้แม้ว่าในลักษณะที่ค่อนข้างง่าย ฉันต้องการสร้างพารามิเตอร์หลายค่าซึ่งฉันเพิ่ม FeatureLayers จำนวนมากจากนั้นเลือกฟิลด์ ID สำหรับแต่ละเลเยอร์ ฉันทำให้มันทำงานได้ แต่ฉันไม่สามารถทำงานวิธีทำให้ฟิลด์เป็นรายการดรอปดาวน์ดังนั้นผู้ใช้ต้องป้อนชื่อฟิลด์ด้วยตนเอง นี่คือส่วนต่อประสาน:
หากใครสามารถแก้ไขปัญหานี้หรือปราชญ์จาก ESRI อวยพรเราด้วยความรู้ของพวกเขาฉันชอบที่จะหาวิธีเปลี่ยนคอลัมน์ที่สองของฉัน (รหัสไซต์) ลงในรายการแบบหล่นลง หากคุณต้องการดูตัวอย่างนี้ดูที่เครื่องมือสร้าง 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
รีเซ็ตอินเตอร์เฟสเป็นตารางหลายคอลัมน์ที่ฉันต้องการ เมื่อคุณใช้ GetParameterAsText มันจะคืนค่าต่อไปนี้โดยใช้ตัวอย่างของฉัน:
pipeline pid;Dredging did
ฉันได้ทำการวิจัยเพิ่มเติมและได้สร้างเครื่องมือโดยใช้กล่องเครื่องมือหลาม มันใช้งานได้ดีมาก แต่มีข้อ จำกัด ถ้าคุณกลับไปเลือก ID อื่น ผมได้โพสต์โค้ดบน Geonet ที่นี่