Je travaille sur un script Python ArcGIS (9.3). L'une des entrées est une liste de fonctionnalités. Pour chaque fonctionnalité, je dois sélectionner un champ correspondant. La définition du paramètre sur MultiValue donne un joli tableau dans l'interface utilisateur pour toutes les fonctionnalités en cours de traitement. Comment ajouter une autre colonne à la table MultiValue pour sélectionner un champ pour chaque fonctionnalité?
Publication croisée: http://forums.arcgis.com/threads/30907-MultiValue-Parameter-with-Multiple-Columns
Réponse d'Esri sur le forum ArcGIS:
Malheureusement, la solution pour cela a été implémentée récemment pour 10.1 avec des entrées ValueTable pour les outils de script. Vous aurez besoin d'avoir deux paramètres à valeurs multiples avec une validation personnalisée pour que cela fonctionne pour 9.3.1.
la source
Réponses:
J'ai travaillé sur la façon de le faire, mais de manière assez simple. Je voulais créer un paramètre à valeurs multiples dans lequel j'ajoute de nombreux FeatureLayers, puis je choisis un champ ID pour chaque couche. Je l'ai fait fonctionner mais je n'ai pas réussi à faire du champ une liste déroulante, donc un utilisateur doit entrer un nom de champ manuellement. Voici l'interface:
Si quelqu'un a réussi à résoudre ce problème ou qu'un gourou d'ESRI nous bénit avec ses connaissances, j'aimerais savoir comment transformer ma deuxième colonne (ID de site) en une liste déroulante, répertoriant des champs spécifiques. Si vous voulez voir un exemple de cela, jetez un œil à l' outil Créer un TIN .
Quoi qu'il en soit, pour créer cette interface, je crée un outil de script et j'ajoute un paramètre de type couche d'entités et le définit sur plusieurs valeurs comme indiqué ci-dessous.
J'ai ensuite cliqué sur l'onglet Validation en haut puis sur le bouton Modifier. Comme ce paramètre est le 6ème paramètre de mon outil de script, j'ai mis à jour le code suivant:
Cela réinitialise l'interface dans la table multi-colonnes que je voulais. Lorsque vous utilisez GetParameterAsText, il renvoie ce qui suit à l'aide de mon exemple:
pipeline pid;Dredging did
J'ai fait quelques recherches supplémentaires et j'ai créé l'outil à l'aide d'une boîte à outils python. Cela fonctionne très bien mais a une limitation si vous revenez en arrière et choisissez un autre ID. J'ai publié le code sur GeoNet ici .
la source
si vous recherchez une liste déroulante pour le paramètre d'ID de site, vous pouvez utiliser un code comme suit:
Ainsi, vous pouvez créer un curseur ou utiliser une autre méthode pour lire tous les champs du FC et les passer, sous forme de liste, à la phrase précédente
la source