Suite

Sélectionnez une valeur dans la liste dans la boîte à outils Python

Sélectionnez une valeur dans la liste dans la boîte à outils Python


dans une boîte à outils Python dans ArcGIS 10.2, je remplis un paramètre avec une liste.parameters[0].filter.list = maListeIl s'agit essentiellement d'une liste de chaînes et donnera à l'utilisateur une plage d'années prédéfinie. Plus tard, je vérifie un nom de fichier s'il contient des informations d'une année. Dans le cas où il y a une année à extraire du nom, je veux la valeur dans la liste définie pourparamètres[0]à sélectionner.

Si j'utilise SetParameterAsText(), j'écraserai ma liste d'années et couperai court à mon utilisateur de la possibilité de corriger l'année au cas où l'année extraite n'est pas celle sur laquelle l'utilisateur se concentre.

Puisque l'année fait de toute façon déjà partie de la liste… y a-t-il un moyen de direparamètres[0].SelectValue()ou alorsparamètres[0].SelectListItem()obtenir une confirmation visuelle pour l'utilisateur ?

J'espère que ce que je veux accomplir est compréhensible.


Une fois que vous avez obtenu l'année, vous devriez pouvoir l'affecter simplement à parameters[0].value. Il y a aussi un exemple qui peut vous être utile ici. Regardez le premier exemple en haut de la page où il écrit param1.value = 'sinuosity'.


Le problème pourrait être l'endroit où vous essayez de définir la valeur, pour un pyt, j'ai eu plus de chance de le faire dans updateParameters, une fois que le FC a obtenu sa valeur plutôt que d'utiliser un filtre dans getParameterInfo. Avec parameters[0] comme FC et parameters[1] comme valeur de date :

def updateParameters(self, parameters): if parameters[0].altered #définissez votre yearValue en fonction de parameters[0] #vous définirez également int_today ici ou devrez le récupérer à partir de l'endroit où vous l'avez défini les paramètres[1]. filter.type = "Plage" parameters[1].filter.list = [yearValue, int_today+1]

Je pense que cela donnera à l'utilisateur la possibilité de sélectionner la date générée et aucune autre option de la liste, je n'ai pas essayé de voir ce qui se passe lorsqu'il souhaite la modifier. Les autres options seraient de filtrer par la liste d'origine mais de définir la valeur souhaitée par défaut en utilisant defaultEnvironmentName mais je n'ai jamais essayé de le faire dans les paramètres de mise à jour.