Ko'proq

Python asboblar qutisida parametrlar ro'yxatini yangilash/yangilash qilyapsizmi?

Python asboblar qutisida parametrlar ro'yxatini yangilash/yangilash qilyapsizmi?


Men ArcGIS 10.2.2 da python asboblar qutisidan foydalanmoqdaman va murosaga kelgan kishi uchun tanlov uchun barcha versiyalarning ochiladigan ro'yxatini xohlayman. (Va men dbo.DEFAULT va DS.Draftni qo'shishni xohlamayman). Ammo bu ro'yxat tahrirlovchining versiyasini yaratish uchun skript ishga tushirilgandan so'ng to'ldiriladi va agar Python asboblar qutisi ArcMap -da qo'lda yangilanmasa, bu eng yangi versiya ro'yxatda ko'rinmaydi.

Men updateParameters ga qaradim, lekin men uni noto'g'ri yozdim yoki ishlamayapti, chunki foydalanuvchi aslida uni ishga soladigan parametrni o'zgartirmadi.

Qanday bo'lmasin, men skript ishlayotgan vaqtda ro'yxatni yangilamoqchiman.

UpdateParameters -dan foydalanishim mumkinmi yoki ro'yxatni qayta ko'paytiradigan qayta yuklash yoki boshqa biror narsa qila olamanmi?

Boshqa narsa shundaki, men parametrlarning tartibini o'zgartira olaman va birinchi navbatda foydalanuvchining bosh harflarini yozaman, bu esa updateParmaters -ni ishga tushiradigan foydalanuvchi harakati bo'ladi, lekin bu muammo emas va tushunarsiz ko'rinadi.

sys, arcpy, os class Toolbox (object): def __init __ (self): "" "Asboblar qutisini aniqlang (asboblar qutisi nomi .pyt faylining nomi)." "" self.label = "EGDB ma'lumotlari Styuard -versiya "self.alias =" " # Ushbu asboblar qutisi bilan bog'liq asboblar sinflari ro'yxati self.tools = [Tayyorgarlik] sinfi Prep (ob'ekt): def __init __ (o'zini):" "" Asbobni aniqlang (asbob nomi - bu sinf). "" "self.label =" Yarashish va joylashtirishga tayyorlaning "self.description =" DS uchun tahrirlovchining katta versiyasini yaratish "self.canRunInBackground = Noto'g'ri def getParameterInfo (o'zini): #Parametr ta'riflarini belgilash params = [] # Birinchi parametr param0 = arcpy.Parameter (displayName = "Tahrirlovchining versiya nomi", name = "editor_full_versionname", ma'lumotlar turi = "GPString", parameterType = "Majburiy", yo'nalish = "Kirish") param0.filter.type = "ValueList" param0.filter.list = [v.name for v in arcpy.da.ListVersions (r " inpyosegis05  DatabaseConnectionFiles  DataStewardsOnly  YOSEGIS_VectorYOSE_DS.sde"), agar v.name ["dbo.DEFAULT", "DS" da bo'lmasa. Qoralama "]] #DE ni oling Xato va loyihani tanlov sifatida ochiladigan ro'yxatdan o'chirish. # Ikkinchi parametr param1 = arcpy.Parameter (displayName = "Ma'lumotlar boshqaruvchisining bosh harflari", name = "DS_initials", ma'lumotlar turi = "GPString", parameterType = "Majburiy", yo'nalish = "Kirish") params = [param0, param1] qaytish parametrlari def isLicenziyalangan (o'zini): "" "Asbobni bajarishga litsenziyalanganligini belgilang." "" Qaytish True def updateParameters (self, parametrlar): "" "Ichki tasdiqlashdan oldin parametrlarning qiymatlari va xususiyatlarini o'zgartiring. Bu usul chaqiriladi. har doim parametr o'zgartirilganda. "" "param0 = arcpy.Parameter (displayName =" Tahrirlovchining versiya nomi ", name =" editor_full_versionname ", datatype =" GPString ", parameterType =" Majburiy ", yo'nalish =" Kirish ") param0. filter.type = "ValueList" param0.filter.list = [v.name for v in arcpy.da.ListVersions (r " inpyosegis05  DatabaseConnectionFiles  DataStewardsOnly  YOSEGIS_VectorYOSE_DS.sde"), agar v.name ["d" da bo'lmasa .DEFAULT "," DS.Draft "]]] #DEFAULT va Loyihani tanlov sifatida ochiladigan ro'yxatdan olib tashlang. qaytish

Quyidagilarni sinab ko'ring:

def updateParameters (o'zini, parametrlari): agar parametrlar [0] .value: parmeters [0] .filter.list = [v.name for v in arcpy.da.ListVersions (r " inpyosegis05  DatabaseConnectionFiles  DataStewardsOnly  YOSEGIS_VectorYOSE_DS) sde ") agar v.name [" dbo.DEFAULT "," DS.Draft "]] qaytishida bo'lmasa

Videoni tomosha qiling: Android Telefonni Versiyasini va Yilini Yangilash Xaqida malumot 2020