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.

ModelBuilder prend en charge la substitution de variables en ligne dans les formats suivants :

  • Variables de modèle : n’importe quelle variable dans un modèle.
  • Variables système : la variable %n% peut être utilisée dans le processus d’itération comme compteur d’itérations dans le modèle. La variable %t% se réfère au moment où la sortie est générée au format AAAAMMJJHHMMSS.
  • Environnements d’espace de travail : quatre environnements d’espace de travail (%scratchGDB%, %scratchFolder%, %workspace% et %scratchWorkspace%) peuvent être utilisés dans ModelBuilder pour simplifier la gestion des données de 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 des 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, C:\Data.gdb, est substituée par %Data Workspace%.

Utiliser une variable de modèle comme variable en ligne

Utiliser avec l’itérateur

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.

Utiliser la sortie d’itérateur comme 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 en tant que "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.

Utiliser 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 sont des chaînes qui doivent être entourées de guillemets ('%string variable%') dans une expression. Les variables en ligne numériques n’ont pas besoin de guillemets.

Dans un deuxième exemple, la substitution de variables est utilisée pour transmettre des valeurs aux paramètres de l’outil Calculer un champ. Le modèle illustré ci-dessous contient deux variables, Class Field (Champ de classement) et Value (Valeur). La variable Class Field (Champ de classement) avec la valeur Class (Classe) est utilisée en tant que paramètre Field Name (Nom de champ). La variable Value (Valeur) avec pour valeur Forest (Forêt) est utilisée comme paramètre Expression. Lorsque l’outil Calculer un champ s’exécute, le champ Class (Classe) récupère la valeur Forest (Forêt) enregistrée dans la variable Value (Valeur).

Utilisation d’une variable en ligne dans l’outil Calculer un champ

Utilisation avec Calculer une valeur

Calculate Value (Calculer une valeur) est un utilitaire ModelBuilder qui permet de calculer une valeur en fonction d’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. Vous pouvez utiliser ces variables 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.

Utiliser une variable en ligne dans l’outil Calculer une valeur

Substitution de variables avec 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 des variables système que vous pouvez utiliser dans un modèle pour représenter l’itération du modèle actuel (%n%) et l’heure (%t%).

La 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 sortie à chaque itération. %n% est utilisé dans le nom en sortie de Zone tampon pour donner un nouveau nom à la sortie de chaque itération.

Exemple de variable en ligne %n%

La variable %t% fait référence au moment où la sortie de l’outil est générée. Par exemple, si un modèle est planifié pour s’exécuter chaque jour à des fins de sauvegarde de données, l’utilisation de la variable %t% génère une sortie comportant un horodatage pour indiquer la date de la sauvegarde.

Exemple de variable en ligne %t%

Héritage :

La variable %i% fonctionne comme %n%. Elle est conçue pour ArcMap, et n’est donc pas recommandée pour une utilisation sur ArcGIS Pro.

Environnements d'espace de travail

Vous pouvez utiliser quatre environnements d’espace de travail dans ModelBuilder pour simplifier la gestion des données dans un modèle. Vous pouvez utiliser des environnements d’espace de travail dans des paramètres de modèle et exécuter des modèles à partir de la fenêtre Geoprocessing (Géotraitement).

EnvironnementUtilisationEmplacementUtilisation recommandée

Géodatabase temporaire

%scratchGDB%

Project Folder\scratch.gdb

Sorties intermédiaires

Dossier temporaire

%scratchFolder%

Project Folder\scratch

Sorties intermédiaires basées sur un fichier

Espace de travail courant

%workspace%

Paramètre d’environnement Current Workspace (Espace de travail courant)

Entrées et sorties de l’outil de géotraitement

Espace de travail temporaire

%scratchWorkspace%

Paramètre d’environnement Scratch Workspace (Espace de travail temporaire)

Sorties intermédiaires

Par exemple, si la sortie d’un outil est %scratchGDB%\CopyToScratchGDB, une géodatabase scratch.gdb est créée, si elle n’existe pas déjà, et la sortie CopyToScratchGDB est générée dans la géodatabase de l’environnement Scratch GDB (Géodatabase temporaire).

Exemple de variable en ligne %scratchGDB%

Dans l’exemple ci-dessous, si la sortie d’un outil est %workspace%\CopyToWorkspace, la sortie CopyToWorkspace est générée dans l’emplacement d’environnement Current Workspace (Espace de travail courant).

Exemple de variable en ligne %workspace%