Daha çox

Cari seçim dəyərini bundan sonra seçilməz hala gətirmədən Python Toolbox Parametrini Yox olaraq təyin etmək?

Cari seçim dəyərini bundan sonra seçilməz hala gətirmədən Python Toolbox Parametrini Yox olaraq təyin etmək?


Python alət qutusu hazırlayıram və GPFeatureLayer tipli giriş parametrinə malikdir. Gəlin zəng edəkmy_param.

İldəupdateParametersnə vaxtmy_param. dəyişdirildi, dəyəri bir cədvələ əlavə olunur. Sonra qurmaq istərdimmy_param.value = Yoxdur, seçim boşaldıldı və eyni dəyər dərhal yenidən seçilə bilər.

Hal-hazırda durduğu kimimy_param.value = Yoxdurbu təbəqənin yenidən seçilə bilməməsi deməkdir.

Niyə bu baş verir və etməyə çalışdığım şeyə necə nail ola bilərəm?

İstifadə etmək üçün bir neçə nümunə kodu:

def getParameterInfo (özünü): my_param = Parametr (displayName = 'Mənim Param', name = "my_param", datatype = "GPFeatureLayer", parameterType = "Könüllü", direction = "Giriş") return [my_param] def updateParameters (self, parametrlər): my_param = parametrlər [0] əgər my_param.altered: (my_param.value-nu başqa bir cədvələ əlavə edən funksiya, bu problem üçün vacib deyil) my_param.value = Yoxdur

Yoxlanılması ilə yanaşıdəyişdirilmişdirparametri dəyərini də qiymətləndirərdim. İstifadə edə bilərsənvalueAsTextvə yadəyər, AmmavalueAsTextbir az daha sürətlidir (xüsusilə bir qat ilə işləsən).

def updateParameters (özünü, parametrləri): my_param = parametrləri [0] əgər my_param.altered və my_param.valueAsText: # (my_param.value-nu başqa bir cədvələ əlavə edən funksiya, bu problem üçün vacib deyil) my_param.value = "return

Artıq parametr dəyəri yalnız parametr dəyişdirildiyi halda sıfırlanacaq və boş deyil.


Bununla necə məşğul olacağımı düşündüm. Mükəmməl bir həll deyil, amma işləyir. 'GPFeatureLayer' əvəzinə datatype = 'GPString' parametrini təyin edin və sonra = "dəyərini təyin edərək boşaltmaq istədiyiniz zaman, my_param.filter.list = [(option1), (option2),…] parametrlərini sıfırlamalısınız. Beləliklə, my_param.filter.list-i qura biləcəyiniz bir sıra siyahısında istədiyiniz bütün seçimləri qaytaran bir metod yazın. Məsələn, bütün nöqtə xüsusiyyət qat adlarını xəritədən qaytaran metodum:

def point_feature_layer_names (özünü): point_layer_names = [] mxd = MapDocument ('CURRENT') df = mxd.activeDataFrame ListLayers (mxd, ", df) dakı lyr üçün: desc = Təsvir edin (lyr.name) əgər desc.shapeType == ' Nöqtə: point_layer_names.append (lyr.name) del mxd return point_layer_names

Videoya baxın: . عمليات الحساب والمنطق والمقارنة في الأردوينو تكملة. دورة تعلم الأردوينو باحترافية