Définition des paramètres des outils de script

Presque tous les outils possèdent des paramètres. Vous pouvez définir leurs valeurs dans la fenêtre Geoprocessing (Géotraitement) ou au sein d’un script. Lorsque l'outil est exécuté, les valeurs du paramètre sont envoyées au code source de l'outil. Votre outil lit ces valeurs et poursuit son travail.

Pour en savoir plus sur les paramètres, consultez la rubrique Présentation des paramètres des outils de script.

Les paramètres de l’outil de script peuvent être définis durant la création d’un outil de script. Vous pouvez également ajouter, supprimer et modifier les paramètres d’un outil de script dans la boîte de dialogue Properties (Propriétés) d’un outil. Pour accéder aux propriétés de l’outil de script, cliquez avec le bouton droit sur l’outil, sélectionnez Properties (Propriétés) et cliquez sur l’onglet Parameters (Paramètres).

Pour ajouter un paramètre, cliquez sur la première cellule vide figurant sous la colonne Label (Étiquette) et saisissez le nom du paramètre. Il s’agit du nom qui apparaîtra dans la fenêtre Geoprocessing (Géotraitement) ; il peut contenir des espaces. Sous la colonne Name (Nom), un nom de paramètre par défaut est créé en se fondant sur Label (Étiquette), ce nom étant modifiable au besoin. Le nom du paramètre est nécessaire à la syntaxe Python et sera validé (y compris le retrait des espaces).

Création d’un paramètre

Après avoir saisi le nom d’affichage du paramètre, choisissez le type de données du paramètre en cliquant dans la cellule Data Type (Type de données) comme illustré ci-dessous.

Définition du type de données d’un paramètre

Si vous devez créer un paramètre qui accepte plusieurs valeurs, cochez la case Multiple values (Valeurs multiples). Si vous devez créer un type de données composite, c’est-à-dire un paramètre acceptant différents types de données, cochez plusieurs types de données.

Chaque paramètre comporte des propriétés supplémentaires qu’il est possible de définir tel qu’il l’a été indiqué précédemment, comme décrit ci-après.

PropriétéDescription

Type

Peut être Required (Obligatoire), Optional (Facultatif) ou Derived (Dérivé). Dérivé signifie que l’utilisateur de votre outil ne saisit pas de valeur pour le paramètre. Les types Derived sont toujours des paramètres en sortie.

Direction

Peut être Input (Entrée) ou Output (Sortie). Si le type du paramètre est Derived (Dérivé), la direction correspond toujours à Output (Sortie).

Catégorie

Les paramètres peuvent être classés en différentes catégories.

Filtre

Si vous voulez n’autoriser la saisie que de certains jeux de données ou certaines valeurs pour un paramètre, vous pouvez spécifier un filtre. Il y a six types de filtres. Le type de filtre que vous pouvez sélectionner dépend du type de données du paramètre.

Dépendance

Cette propriété s’applique aux types de données des paramètres en entrée et en sortie. Concernant les paramètres en sortie dérivés, Dependency (Dépendance) peut être défini sur le paramètre contenant la définition de la sortie. Quant aux paramètres en entrée, Dependency (Dépendance) est défini sur le paramètre contenant les informations nécessaires en entrée.

Par défaut

La valeur par défaut du paramètre. Lorsque le type de données du paramètre est soit jeu d’entités, soit jeu d’enregistrements, Default (Par défaut) permet de définir la structure du paramètre.

Environnement

Si la valeur par défaut du paramètre doit provenir d’un paramètre d’environnement, cette propriété contient le nom de celui-ci.

Symbologie

Cette propriété s’applique seulement aux paramètres en sortie. La valeur désigne l’emplacement d’un fichier de couche (.lyrx) qui contient la symbologie permettant d’afficher la sortie.

Propriétés du paramètre

Type

Le type est défini sur l’une des options suivantes :

  • Required (Obligatoire) : le paramètre doit avoir une valeur pour que l’outil puisse s’exécuter.
  • Optional (Facultatif) : le paramètre ne requiert aucune valeur.
  • Derived (Dérivé) : utilisez les paramètres dérivés dans les cas suivants :
    • La sortie est identique à l’entrée. Par exemple, l’outil Calculer un champ met à jour les valeurs d’un champ particulier dans la table en entrée ; il ne crée pas une table ni ne modifie la structure de l’entrée.
    • L’outil modifie la structure de l’entrée. Par exemple, l’outil Ajouter un champ ajoute un champ dans la table en entrée.
    • L’outil produit une valeur scalaire telle qu’un nombre, une chaîne ou une valeur booléenne. Par exemple, l’outil Compter renvoie une valeur d’entier dérivée.
    • L’outil crée une sortie à partir de valeurs figurant dans d’autres paramètres. Par exemple, l’outil Créer une classe d’entités renvoie le chemin d’une classe d’entités dérivée, construite à partir d’autres paramètres pour lesquels le chemin et le nom possèdent des valeurs.
    • L'outil créera les données dans un emplacement connu. Ainsi, un script peut créer une classe d’entités dans un espace de travail connu. Ni la classe d’entités, ni l’espace de travail ne sont des options du paramètre.
Remarque :

Lorsqu’un outil met à jour un jeu de données ou une couche, l’outil doit inclure un paramètre en sortie dérivé avec une dépendance du paramètre définie vis-à-vis d’un paramètre en entrée. De cette manière, le géotraitement en arrière-plan multithread dans ArcGIS Pro détermine les couches de carte à déconnecter au cours du traitement de façon à se prémunir contre les erreurs de verrouillages de données et celles à reconnecter après traitement et à actualiser selon les propriétés mises à jour (sélections, jointures...).

Remarque :

Si votre outil de script a une sortie dérivée, vous devez définir la valeur du paramètre en sortie dérivé dans votre script à l’aide de la fonction SetParameterAsText ou SetParameter.

Valeurs en sortie à la place de données

Les exemples ci-dessus présentent la génération de jeux de données dérivés. Certains outils, toutefois, génèrent des valeurs au lieu de jeux de données. C’est le cas, par exemple, de l’outil Compter qui produit un type de données Long indiquant le nombre de lignes dans une table. Il est courant de générer des valeurs plutôt que des jeux de données. Vous pouvez détenir des scripts pour effectuer une analyse de plusieurs jeux de données associés et ne générer que quelques nombres ou une valeur booléenne de type réussite/échec.

Les paramètres en sortie contenant des types de données Valeur (tels que Long ou Boolean (Booléen)) sont toujours dérivés (Derived) et non obligatoires (Required).

Direction

Cette propriété détermine si le paramètre est une entrée ou une sortie de l'outil.

Si le type du paramètre est Derived (Dérivé), la direction du paramètre est automatiquement définie sur Output (Sortie).

Tous les outils de script disposent de paramètres en sortie de manière à pouvoir les utiliser dans ModelBuilder. Les outils de ModelBuilder ont pour principe fondamental de connecter la sortie des outils aux entrées d’autres outils. Si votre outil de script n’a pas de paramètre en sortie, il ne présente pas beaucoup d’intérêt dans ModelBuilder. La sortie peut être un jeu de données saisi comme la valeur d’un paramètre, une sortie dérivée pour laquelle l’emplacement ou le nom est déterminé dans un script ou encore une valeur dérivée qui est calculée ou déterminée. Au minimum, vous pouvez produire un booléen contenant la valeur True si l’outil s’est correctement exécuté ou la valeur False dans le cas contraire.

Catégorie

Les paramètres peuvent être classés dans différentes catégories afin de réduire la taille de la fenêtre Geoprocessing (Géotraitement) ou de regrouper des paramètres associés rarement utilisés. Vous pouvez saisir un nouveau nom de catégorie ou en choisir un dans une liste si vous avez défini une catégorie pour d’autres paramètres. Plusieurs outils ArcGIS Network Analyst extension utilisent des catégories, comme indiqué ci-dessous.

Catégories de paramètre

Les catégories sont toujours affichées après les paramètres qui ne sont pas catégorisés. Ne placez pas les paramètres obligatoires dans des catégories, car ils ne sont pas visibles dans la fenêtre Geoprocessing (Géotraitement).

Valeurs multiples

Si votre paramètre doit pouvoir gérer une liste de valeurs plutôt qu’une seule valeur, attribuez la valeur Yes (Oui) à la propriété MultiValue (Valeurs multiples).

Un exemple de contrôle à valeurs multiples est illustré ci-dessous.

Contrôle à valeurs multiples

Il est possible d’accéder aux valeurs multiples via des listes lorsque vous utilisez la fonction arcpy.GetParameter et de les itérer à l’aide d’une boucle for. Vous pouvez également accéder aux valeurs multiples sous la forme d’une chaîne délimitée par des points-virgules via la fonction arcpy.GetParameterAsText. Pour découper une chaîne délimitée, utilisez la méthode Python split illustrée dans l’exemple de code figurant ci-dessous.

import arcpy
road_types = arcpy.GetParameterAsText(0)
road_list = road_types.split(";")

# Process each road type
for road_type in road_list:
  # road_type contains an individual road type string (ex: "Interstates")
  arcpy.AddMessage("Processing: {}".format(road_type))

Par défaut

La valeur par défaut correspond au contenu du paramètre à l’ouverture de l’outil de script. C'est également la valeur qui est utilisée si un # est entré pour le paramètre dans les scripts. Si vous ne spécifiez pas une valeur pour la propriété Default (Par défaut), la valeur du paramètre est vide lorsque l’outil est ouvert. Si vous spécifiez une valeur pour cette propriété, la propriétéEnvironment (Environnement) est désactivée. Pour activer la propriété Environment (Environnement), effacez la propriété Default (Par défaut).

Structure

Lorsque le type de données du paramètre en entrée est un jeu d’entités (Feature Set ) ou un jeu d’enregistrements (Record Set), vous devez spécifier l’emplacement d’une structure définissant les champs et le type de géométrie des entités à saisir. Une structure est une classe d’entités, une table ou un fichier de couche (.lyrx).

Les types de données Feature Set (Jeu d’entités) et Record Set (Jeu d’enregistrements) permettent la saisie interactive des données. Un jeu d’entités permet à l’utilisateur de votre script de créer de façon interactive des entités en cliquant sur la carte. Le jeu d’enregistrements permet à l’utilisateur de créer de façon interactive des lignes dans une grille tabulaire.

Environnement

Vous pouvez définir la valeur par défaut d’un paramètre sur la valeur d’un paramètre d’environnement en cliquant avec le bouton droit sur la cellule qui convient qui se trouve sous Environment (Environnement) et en choisissant le nom du paramètre d’environnement.

Filtre

Si vous voulez que seuls certains types de jeux de données ou valeurs soient entrés pour un paramètre, vous pouvez spécifier un filtre. Cliquez sur la cellule qui appropriée figurant sous Filter (Filtre) et choisissez le type de filtre qui convient dans la liste déroulante. Une boîte de dialogue apparaît dans laquelle vous spécifiez les valeurs pour le filtre. Il y a six types de filtres. Le type de filtre que vous pouvez sélectionner dépend du type de données du paramètre.

Vous pouvez généralement choisir un seul type de filtre. Seuls les types Long et Double ont deux options : Value List (Liste de valeurs) et Range (Plage).

Vous pouvez également définir les filtres par programmation avec Python en personnalisant la classe ToolValidator d’un outil de script.

Unités de surface

Le filtre des unités de surface définit les types d’unités autorisées : Square Inches (Pouces carrés), Square Feet (Pieds carrés), Square Yards (Yards carrés), Acres, Square Miles (Milles carrés), Square Millimeters (Millimètres carrés), Square Centimeters (Centimètres carrés), Square Decimeters (Décimètres carrés), Square Meters (Mètres carrés), Ares, Hectares, Square Kilometers (Kilomètres carrés) etUnknown (Inconnu).

Type d'entités

Pour ce filtre, sélectionnez une ou plusieurs valeurs de filtre. Les classes d'entités en entrée seront comparées aux valeurs de filtre. Par exemple, si vous sélectionnez uniquement la valeur de filtre Point, l’utilisateur ne peut saisir que des classes d’entités ponctuelles comme valeurs de paramètre.

Un filtre de type d’entité définit les types de classes d’entités autorisés : Point, Multipoint (Multi-points), Polygon (Polygone), Polyline (Polyligne), Annotation et Dimension. Plusieurs valeurs peuvent être appliquées au filtre.

Champ

Le filtre de champ définit les types de champ autorisés : Short (Court), Long, Float (Flottant), Double, Text (Texte), Date, OID, Geometry (Géométrie), Blob, Raster, GUID, GlobalID etXML. Plusieurs valeurs peuvent être appliquées au filtre.

Fichier

Le filtre de fichier contient une liste des suffixes susceptibles d’être acceptés par un fichier, tels que txt (fichier texte simple) et csv (valeurs séparées par des virgules). Le suffixe peut être n'importe quel texte : il n'a pas besoin d'être reconnu par ArcGIS. La longueur du suffixe est illimitée et les points ne sont pas acceptés. Les différents suffixes sont séparés par un délimiteur de type point-virgule.

Unités linéaires

Le filtre des unités linéaires définit les types d’unités autorisées : Inches (Pouces), Points, Feet (Pieds), Yards, Miles (Milles), Nautical Miles (Milles nautiques), Millimeters (Millimètres), Centimeters (Centimètres), Meters (Mètres), Kilometers (Kilomètres), Decimal Degrees (Degrés décimaux), Decimeters (Décimètres), Degrees (Degrés) et Unknown (Inconnu). Plusieurs valeurs peuvent être appliquées au filtre.

Plage

Un paramètre Long ou Double peut avoir un filtre Range (Plage). Les filtres Range (Plage) ont deux valeurs, une valeur minimale et une valeur maximale. La plage est inclusive, les valeurs minimale et maximale sont donc des choix valides.

Unités de temps

Le filtre des unités de temps définit les types d’unités autorisées : Milliseconds (Millisecondes), Seconds (Secondes), Minutes, Hours (Heures), Days (Jours), Weeks (Semaines), Months (Mois), Years (Années), Decades (Décennies), Centuries (Siècles) et Unknown (Inconnu). Plusieurs valeurs peuvent être appliquées au filtre.

Type d’unité du mode de déplacement

Ce filtre permet de définir les types de modes de déplacement autorisés en fonction de l’unité de l’attribut d’impédance du mode de déplacement. Les options valides sont : Time (Temps), Distance et Other (Autre). Par défaut, les trois types sont autorisés.

Liste de valeurs

Le filtre Value List (Liste de valeurs) est très utile pour fournir un ensemble de mots-clés. De nombreux outils disposent d’un ensemble prédéfini de mots-clés, tels que le paramètre Field Type (Type de champ) figurant dans l’outil Ajouter un champ ou le paramètre JoinAttributes (Attributs de jointure) de nombreux outils dans le jeu d’outils Superposition.

Un filtre Value List (Liste de valeurs) est utilisable pour les types de données Long et Double. Pour ces types, saisissez les valeurs numériques autorisées.

Si vous voulez que l’utilisateur soit en mesure de sélectionner plusieurs valeurs, définissez la propriété Multivalue (Valeurs multiples) sur Yes (Oui).

Une liste de valeurs (Value List) est utilisable pour les types de données Boolean (Booléen). Pour les types de données Boolean (Booléen), la liste de valeurs (Value List) contient deux valeurs : True et False. La valeur True est toujours la première valeur dans la liste. Ces valeurs sont utilisées dans la ligne de commande pour spécifier la valeur. Prenez, par exemple, l’outil Ajouter un champ et les mots-clés {NULLABLE | NON_NULLABLE} utilisés pour la propriété IsNullable (Accepte les valeurs nulles).

Espace de travail

Le filtre d'espace de travail spécifie les types d'espaces de travail en entrée autorisés. Les trois valeurs sont les suivantes :

  • File System (Système de fichiers) : un dossier système utilisé pour stocker des shapefiles, des couvertures, des tables INFO et des grilles
  • Local Database (Base de données locale) : géodatabase fichier ou personnelle
  • Remote Database (Base de données distante) : connexion à une base de données d’entreprise

Plusieurs valeurs peuvent être appliquées.

Dépendance

La propriété Dependency (Dépendance) répond aux deux objectifs suivants :

  • Pour un paramètre en sortie dérivé, la propriété Dependency (Dépendance) est définie sur le paramètre en entrée qui sera modifié par l’outil. Pour plus d’informations sur les données dérivées et sur la dépendance, consultez la section relative à la propriété Type ci-dessus.
  • Pour les paramètres en entrée, Dependency (Dépendance) contient le nom des autres paramètres utilisés par le type de données. Par exemple, pour le type de données d’un champ en entrée, Dependency (Dépendance) est défini sur le nom du paramètre de la table contenant les champs.

Vous pouvez uniquement définir Dependency (Dépendance) pour certains paramètres en entrée, comme indiqué dans le tableau ci-dessous.

Type de données en entréeType de données de la propriété Obtenu à partir deDescription

Field (Champ) ou SQL Expression (Expression SQL)

Table

Table contenant les champs

INFO Item (Élément INFO) ou INFO Expression (Expression INFO)

Table INFO

Table INFO contenant les attributs

Classes d’entités de couvertureCouverture

Couverture contenant des entités

Area Unit (Unités de surface) ou Linear Units (Unités linéaires)

Jeu de données géographiques

Jeu de données géographiques utilisé pour déterminer les unités par défaut

Système de coordonnéesEspace de travail

Espace de travail utilisé pour déterminer le système de coordonnées par défaut.

Paramètres de hiérarchie Network AnalystJeu de données réseau

Jeu de données réseau contenant les informations de hiérarchie

Table de valeurs géostatistiquesCouche géostatistique

Couche d’analyse qui contient les tables

Mode de déplacement réseau

Network Data Source (Source de données réseau), Network Dataset (Jeu de données réseau), Network Dataset Layer (Couche de jeu de données réseau)

Liste des modes de déplacement

Types de données pour Dependency (Dépendance)

Symbologie

Si la sortie de votre outil est un jeu d’entités, un raster, un TIN ou une couche, vous pouvez spécifier l’emplacement d’un fichier de couche (.lyrx) dans la propriété Symbology (Symbologie). Lorsque votre outil est exécuté et que la sortie est ajoutée à l’affichage, elle est dessinée à l’aide de la symbologie définie dans le fichier de couche de symbologie.

Attention :

Le fichier de couche est lu à chaque exécution de l’outil. Si le fichier de couche est introuvable (il a été déplacé ou supprimé), la symbologie par défaut est utilisée.

Rubriques connexes