Vous pouvez personnaliser le comportement de la boîte de dialogue de votre outil de script, par exemple l’activation ou la désactivation des paramètres, la fourniture de valeurs par défaut ou la mise à jour des mots-clés d’une chaîne. En ajoutant le code Python, vous pouvez effectuer les opérations suivantes :
- Activer ou désactiver un paramètre en fonction des valeurs d’autres paramètres.
- Mettre à jour un filtre de paramètre. L’utilisation d’un filtre de champ permet de créer une liste de types de champ valides, par exemple Long et Double. Avec un filtre de chaîne, vous pouvez définir une liste de mots-clés valides, comme indiqué ci-dessous. Il existe six types de filtre : Value List (Liste de valeurs), Range (Plage), Feature Class (Classe d’entités), File (Fichier), Field (Champ) et Workspace (Espace de travail).
- Indiquer des valeurs par défaut pour les paramètres, par exemple une taille de cellule pour les rasters.
- Personnaliser les messages d’avertissement et d’erreur qui s’affichent dans la boîte de dialogue.
- Placer les paramètres dans différentes catégories.
- Mettre à jour la description des jeux de données en sortie à utiliser dans ModelBuilder.
Fonctionnement de la validation
La validation s’effectue avec un bloc de code Python utilisé par le géotraitement pour contrôler la manière dont la boîte de dialogue et la fenêtre Python de l’outil changent en fonction des informations saisies par l’utilisateur. Les outils système (fournis par Esri) peut réagir aux entrées de l’utilisateur et modifier en conséquence la boîte de dialogue de l’outil comme décrit ci-dessus.
Validation
La validation consiste à vérifier que tous les paramètres d’outil sont corrects et à fournir des messages utiles si ce n’est pas le cas. La validation se compose de deux parties :
- Le code que vous ajoutez.
- La validation interne automatique (ou validation de base) effectuée par le géotraitement dans ArcGIS.
La validation interne effectue les opérations suivantes :
- Si un paramètre est requis, elle vérifie s’il est vide (aucune donnée saisie) et, si tel est le cas, elle indique que la valeur est requise dans la boîte de dialogue de l’outil (à l’aide d’un point vert au lieu d’un X rouge).
- Elle vérifie que le type de la valeur indiquée est correct (par exemple, un raster au lieu d’une classe d’entités ou des caractères alphabétiques ou lieu d’un nombre).
- Elle vérifie l’appartenance à un filtre. Ainsi, si vous avez un filtre Value List (Liste de valeurs) qui contient des mots-clés tels que RED, ORANGE et YELLOW, et que vous saisisse BLUE, vous recevez un message d’erreur, car BLUE ne se trouve pas dans le filtre Value List (Liste de valeurs).
- Elle vérifie s’il existe des jeux de données en entrée.
- Elle génère un chemin d’accès de catalogue par défaut pour les jeux de données en sortie.
- Elle met à jour la description des données en sortie en fonction d’un jeu de règles présentes dans l’objet spécial Schema.
- Elle vérifie s’il existe un jeu de données en sortie avec l’option de remplacement des résultats du géotraitement activée. Si le jeu de données existe mais que l’option est désactivée, une erreur se produit ; sinon, un avertissement s’affiche.
- Si le type de données du paramètre est Champ, elle vérifie si le champ existe dans la table associée.
- Elle vérifie que le jeu de données en sortie n’est pas identique au jeu de données en entrée (à moins que la sortie soit dérivée, comme avec Add Field (Ajouter un champ)).
- Pour les paramètres qui contiennent des types de données d’unités linéaires et surfaciques, elle définit les valeurs par défaut en consultant les valeurs correspondantes dans ArcMap (en cas d’exécution dans ArcMap).
- Si la sortie est une couverture, une grille ou une table INFO, elle vérifie si la limite de 13 caractères pour les noms de fichier est respectée pour ces jeux de données.
La validation interne n’effectue pas les opérations suivantes (mais vous pouvez pour ce faire utiliser votre propre code de validation) :
- Mettre à jour les filtres en fonction de l’interaction avec d’autres paramètres. Par exemple, si votre utilisateur indique une classe d’entités ponctuelles dans le premier paramètre, la boîte de dialogue de l’outil devra afficher RED, ORANGE et YELLOW dans le troisième paramètre. Si une classe d’entités surfaciques est indiquée, le troisième paramètre devra afficher BLUE, INDIGO et VIOLET.
- Activer ou désactiver des paramètres.
- Calculer les valeurs par défaut.
- Effectuer toute interaction de paramètre spécifique à l'outil.
Le code que vous ajoutez fonctionne comme suit avec la validation interne :
- Vous pouvez fournir un ensemble de règles que la validation interne utilisera pour mettre à jour la description des jeux de données en sortie. Ces règles sont contenues dans un objet Schéma.
- Vous pouvez mettre à jour les filtres avant la validation interne. Dans l’exemple ci-dessus, si une classe d’entités ponctuelles est indiquée, mettez à jour le filtre pour qu’il contienne RED, ORANGE et YELLOW. La validation interne compare la valeur indiquée aux valeurs du filtre.
De plus, comme mentionné, votre code de validation peut calculer les valeurs par défaut, activer et désactiver les paramètres et personnaliser les messages. Ces types d'actions n'ont aucune conséquence sur la validation interne ; ils affectent uniquement l'apparence de la boîte de dialogue de l'outil.