Exemples de substitution de variable de modèle en ligne
Toute variable contenue dans un modèle peut être utilisée en tant que substitut de variable. Il faut pour cela placer son nom entre symboles de pourcentage (%nom variable%). Cette rubrique présente des exemples d'utilisation de la substitution de variables en ligne dans ModelBuilder.
Exemple 1
Dans le modèle ci-dessous, la valeur de la variable d'espace de travail Data Workspace 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 en entourant le nom de la variable par des symboles de pourcentage. Lors de l'exécution, la valeur de la variable, C:\Data.gdb, est substituée par %Data Workspace%.
Exemple 2 :
Lorsque l'itérateur Itérer les classes d'entité est exécuté, il crée une variable en sortie à la fois pour le chemin d'accès de la classe d'entités et le nom de la classe d'entités. La valeur de la variable Name permet de créer le chemin d'accès à la classe d'entités projetée. Lors de l'exécution de l'outil, %Name% est remplacé par le nom de la classe d'entités.
Exemple 3 :
Parcel ID est un paramètre de modèle qui est spécifié lors de l'exécution de l'outil de modèle. 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% est remplacé par l'identifiant Parcel ID (9 dans l'exemple ci-dessous), et seules les parcelles ayant cet identifiant sont sélectionnées.
- Dans cet exemple, le type de données de la variable Parcel ID est une chaîne. Les variables en ligne de type chaîne doivent être entourées de guillemets ('%string variable%') dans une expression. Les variables en ligne numériques (double, long) n'ont pas besoin de guillemets (%double%).
Le bouton Vérifier utilisé pour une requête SQL avec substitution de variable en ligne dans le Générateur de requêtes pour des outils tels que Générer une couche, Sélectionner et Sélectionner une couche par attributs, renvoie une erreur de requête SQL incorrecte, car la vérification ne remplace pas la valeur de la variable en ligne lors de l'évaluation d'une expression. A l'exécution de l'outil, la valeur de la variable en ligne est remplacée dans l'expression et les résultats sont créés en fonction des valeurs substituées.
Exemple 4 :
Ce modèle contient deux variables : Number of Residents et Waste Per Person Per Year. Ces variables sont utilisées dans l'expression de l'outil Calculer une valeur en les entourant de symboles de pourcentage. Lorsque l'outil Calculer la valeur s'exécute, les noms de variable sont substitués par leurs valeurs spécifiées et multipliées pour calculer la valeur total waste per year.
Exemple 5 :
Miles to Meter est une variable dans le modèle qui contient un facteur de conversion pour le nombre de mètres dans un mile (1,609.344). L'entrée comporte un champ de distance avec des valeurs en miles. L'outil Calculer un champ utilise les valeurs du champ de distance (en miles) pour multiplier par le facteur de conversion et générer la distance en mètres. L'expression de l'outil Calculer une valeur est Miles * %Miles to Meter%. Lorsque l'outil est exécuté, %Miles to Meter% est remplacé par 1609.344.
Exemple 6 :
L'exemple ci-dessous montre une utilisation incorrecte de la substitution de variables en ligne dans un modèle et comment le problème peut être résolu.
La variable en entrée contient la valeur C:\ToolData\Road.shp. Lorsqu'elle est utilisée en tant que substitution en ligne dans le nom en sortie comme C:\Scratch\%Input%, l'outil renvoie une erreur. Cette erreur se produite parce que la variable en entrée contient le chemin d'accès, le nom et l'extension du jeu de données, ce qui entraîne la définition de la valeur substituée sur C:\Scratch\C:\ToolData\Road.shp, ce qui est un chemin non valide. Pour bien aborder ce type de situation, utilisez l'outil Analyser le chemin pour scinder le chemin complet en composants, puis utilisez le nom du jeu de données (contenu dans la variable Name) pour la substitution en ligne.