Substitution de variables en ligne

Dans ModelBuilder, il est possible de remplacer la valeur ou le chemin d’accès à un jeu de données d’une variable par une autre variable en plaçant le nom de la variable entre des signes de pourcentage (%VariableName%). La substitution de variables effectuée de cette manière est appelée substitution de variables en ligne.

Par exemple, si vous avez une variable Name (Nom) avec une valeur Wilson, vous pouvez construire un chemin d’accès au jeu de données sous la forme C:\Data\Output.gdb\Clipped_%Name% et le chemin d’accès sera résolu en tant que C:\Data\Output.gdb\Clipped_Wilson.

Vous pouvez effectuer la substitution de variables en ligne avec n’importe quelle variable de modèle ou système.

  • Variables de modèle : toute variable dans un modèle.
  • Variable système : ModelBuilder fournit une variable système intégrée, n, qui peut être utilisée dans les processus d’itération. %n% est le nombre d’itérations dans le modèle.

Substitution de variables de modèle

Dans le modèle illustré ci-dessous, la valeur de la variable d’espace de travail Data Workspace (Espace de travail de données) est C:\Data.gdb. Cet emplacement de l’espace de travail est remplacé en tant que variable en ligne dans les paramètres de l’outil Projeter et le nom de la variable est entouré par des symboles de pourcentage. Lors de l’exécution, la valeur de la variable réelle, C:\Data.gdb, est substituée par %Data Workspace%.

Espace de travail de données en ligne

Avec des itérateurs

L’utilisation de la substitution de variables de modèle est particulièrement importante lors de l’utilisation d’itérateurs de ModelBuilder. Lorsque l’itérateur Iterate Feature Classes (Itérer dans des classes d’entités) est exécuté, il crée une variable en sortie à la fois pour le chemin d’accès de chaque classe d’entités dans un espace de travail. La valeur de la variable Name (Nom) permet de créer le chemin d’accès à Projected Feature Class (Classe d’entités projetée) en sortie. Lors de l’exécution de l’outil, %Name% est remplacé par le nom de la classe d’entités.

Sortie d’itérateur en tant que variable en ligne

Entrée d'utilisateur dans un outil de modèle

La substitution de variables de modèle peut aider à transmettre les valeurs saisies par un utilisateur directement dans un outil dans votre modèle. Par exemple, dans le modèle illustré ci-après, Parcel ID est un paramètre de modèle spécifié lorsque l’outil de modèle est exécuté à partir de la fenêtre Geoprocessing (Géotraitement). Cette variable est utilisée dans le paramètre Expression de l’outil Sélectionner une couche par attributs comme "Parcel" = '%Parcel ID%'. Lorsque l’outil s’exécute, %Parcel ID% dans l’expression est remplacé par l’identifiant Parcel ID (9 dans l’exemple ci-dessous), et seules les parcelles ayant cet identifiant sont sélectionnées.

Utilisation de la variable en ligne dans l’outil Sélectionner une couche par attributs
Remarque :
Dans cet exemple, la variable Parcel ID est une chaîne. Les variables en ligne représentées par des chaînes doivent être comprises entre des guillemets ('%string variable%') dans une expression. Les variables en ligne représentées par des nombres n’exigent pas de guillemets.

Utilisées avec Calculer une valeur

Calculate Value (Calculer une valeur) est un puissant utilitaire ModelBuilder qui permet de calculer une valeur d’après une expression Python et d’utiliser cette valeur dans votre modèle. Vous pouvez utiliser la substitution de variables de modèle pour transmettre des valeurs issues de variables de modèle dans l’expression Python Calculer une valeur ou utiliser le nom de la variable en sortie qui stocke la valeur calculée dans un autre outil dans votre modèle.

Le modèle ci-après contient deux variables numériques : Number of Residents et Waste Per Person Per Year. Ces variables sont utilisées dans l’expression de l’outil Calculer une valeur encadrées par des symboles de pourcentage. Lorsque l’outil Calculer une valeur s’exécute, les noms de variable sont substitués par leurs valeurs et multipliées, ce qui permet de calculer la valeur Total Waste Per Year.

Utilisation d’une variable en ligne dans l’outil Calculer une valeur

Substitution de valeurs comportant des extensions de fichier

Si une variable pointe vers un fichier doté d’une extension, par exemple, elevation.tif, et que cette variable doit être incluse dans le chemin en sortie d’un autre outil grâce à la substitution en ligne, la sortie inclut à tort l’extension .tif dans le nom en sortie. Dans ce cas, l’outil Analyser un chemin permet d’obtenir uniquement le nom de fichier : elevation. La variable Name (Nom) de l’outil en sortie Analyser un chemin peut ensuite être utilisée comme substitution en ligne dans l’outil suivant.

Substitution de variables système

ModelBuilder fournit une variable système intégrée qui peut être utilisée dans les processus d’itération. Cette variable, %n%, fait référence à l’itération du modèle actuel (la première itération est zéro) lorsqu’un modèle contient un itérateur.

Par exemple, l’itérateur For (Pour) est utilisé pour itérer un modèle à quatre reprises. La sortie générée par l’outil Zone tampon est utilisée comme entrée en feedback de l’outil. Le modèle effectue des itérations et crée une nouvelle sortie à chaque itération. %n% est utilisé dans le nom en sortie de Buffer (Zone tampon) pour donner un nouveau nom à la sortie de chaque itération.

Utilisation de %n%