পাইথন স্ক্রিপ্ট সরঞ্জামের পরামিতিগুলিতে ড্রপ-ডাউন তালিকা সেট আপ করছেন?


10

আমি লিখেছি যে পাইথন স্ক্রিপ্ট থেকে একটি সরঞ্জাম তৈরি করার চেষ্টা করছি যা আমি তৈরি করেছি একটি তালিকা নেবে এবং এটি একটি ইনপুট হিসাবে সমাপ্ত সরঞ্জামে একটি ড্রপ-ডাউন মেনু হিসাবে ব্যবহার করবে (উদাহরণস্বরূপ সংযুক্ত চিত্র দেখুন):

এখানে চিত্র বর্ণনা লিখুন

আমি যে তালিকাটি ব্যবহার করছি সেটি হ'ল একটি বৃহত তালিকা যা ভার্মন্ট রাজ্যের সমস্ত শহরকে অন্তর্ভুক্ত করে এবং আমি এটি কোনও টেবিল থেকে স্ক্রিপ্টে তৈরি করি (নীচের কোডটি দেখুন)। আমি সন্দেহ করি এই মুহুর্তে আমার সমস্যাটি কেবলমাত্র এই তালিকাটি নেওয়ার জন্য সরঞ্জাম বৈশিষ্ট্য নির্ধারণ এবং ব্যবহারকারীর জন্য একটি ড্রপ-ডাউন তালিকা তৈরি করতে এটি ব্যবহার করে। এখানে কোডের ব্লকটি দেওয়া হয়েছে যা প্যারামিটারে ব্যবহারের জন্য তালিকা তৈরি করে - কোনও কি এই সরঞ্জামটির কোড-শেষের সাথে কোনও সমস্যা দেখতে পাবে?

import arcpy
arcpy.env.workspace = "Z:\\OPS\\TechnicalServices\\Culverts\\GetCulverts\\GetCulverts.gdb"
towns = "Database Connections\\GDB_GEN.sde\\GDB_Gen.VTRANS_ADMIN.townindex"
arcpy.MakeFeatureLayer_management(towns,"towns_lyr")

NameList = []
NameListArray = set()
rows = arcpy.SearchCursor("towns_lyr")
for row in rows:
    value = row.getValue("TOWNNAME")
if value not in NameListArray:
    NameList.append(value)
town = NameList

town = arcpy.GetParameterAsText(0)

এখানে ডিফল্ট বৈধতা কোড সহ সরঞ্জামের বৈশিষ্ট্যগুলিরও একটি চিত্র রয়েছে - আমাকে কি এই বৈধকরণ কোডটি পরিবর্তন করতে হবে?

আমি এই বৈধতা কোডটি পরিবর্তন করার জন্য তথ্যের সন্ধান করেছি, তবে ড্রপ-ডাউন তালিকাগুলির বিন্যাসকরণের জন্য এটি ব্যবহারের জন্য তথ্য খুঁজে পেলাম না।

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


7

এটিতে সরঞ্জাম বৈধকরণকারী শ্রেণীর কোডটি সেট করার চেষ্টা করুন:

import arcpy
class ToolValidator(object):
  """Class for validating a tool's parameter values and controlling
  the behavior of the tool's dialog."""

  def __init__(self):
    """Setup arcpy and the list of tool parameters."""
    self.params = arcpy.GetParameterInfo()

  def initializeParameters(self):
    """Refine the properties of a tool's parameters.  This method is
    called when the tool is opened."""
    return

  def updateParameters(self):
    """Modify the values and properties of parameters before internal
    validation is performed.  This method is called whenever a parameter
    has been changed."""
    towns = "Database Connections\\GDB_GEN.sde\\GDB_Gen.VTRANS_ADMIN.townindex"
    rows = arcpy.SearchCursor(towns)
    self.params[0].filter.list = sorted(list(set(r.getValue('TOWNNAME') for r in rows)))
    del rows
    return

  def updateMessages(self):
    """Modify the messages created by internal validation for each tool
    parameter.  This method is called after internal validation."""
    return
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.