<\/HEAD>
Ceci est le troisième article d'une série en trois parties sur la création de modèles de géotraitement dans ArcGIS.<\/EM><\/P><\/P>Si vous avez lu les articles précédents de cette série, vous maîtrisez les bases de la modélisation et vous savez comment ajouter des paramètres de modèle pour faciliter la réutilisation et les tests de scénarios. Dans cet article, vous apprendrez quelques techniques pour faire plus avec moinsd'effort, c'est-à-dire. <\/P><\/P>Variables de liste<\/STRONG><\/P><\/P>Dans le dernier article<\/A>, vous avez appris comment faire d'un paramètre d'outil une variable, et transformer une variable en paramètre de modèle. Par défaut, une variable stocke une seule valeur. Cependant, il est possible de stocker plusieurs valeurs dans une variable. Lorsque vous le faites, la variable est appelée variable de liste.<\/P><\/P>
Lorsqu'une variable de liste est connectée à un outil de géotraitement, cet outil et tous les processus en aval (tous les processus qui dépendent de la sortie de l'outil) s'exécuteront automatiquement une fois pour chaque valeur dans la liste. C'est exact : lorsque vous définissez une variable de liste, les outils du modèle savent automatiquement traiter chaque élément de la liste.<\/P>
<\/P>
Utiliser des variables de liste revient à exécuter des outils de géotraitement en mode batchavec l'avantage majeur que vous n'avez à saisir la liste des valeurs qu'une seule fois pour obtenir un traitement multi-outils.<\/P>
<\/P>
Considérez le modèle ci-dessous, qui automatise un flux de travail typique de gestion des données.<\/P>
<\/P>
<\/A><\/P>
Ce modèle crée une géodatabase fichier, convertit un shapefile en classe d'entités dans la géodatabase, supprime les entités dupliquées, définit le système de coordonnées pour la classe d'entités et produit une couche avec les entités sélectionnées. Remarquez que le modèle a même deux paramètres. C'est un flux de travail complet qui fonctionne très bien lorsqu'un seul shapefile doit être traité.<\/P>
<\/P>
Cependant, il est insuffisant lorsque plusieurs shapefiles doivent être traités. Le modèle devrait être exécuté manuellement plusieurs fois pour traiter tous les shapefiles. Ne serait-il pas mieux d'exécuter le modèle une seule fois et que tout le travail soit fait ?<\/P>
<\/P>
Créer une variable de liste accomplira cela. Pour créer une variable de liste dans cet exemple :<\/P>
<\/P>
<\/P>
- Cliquez-droit sur la variable d'entrée Feature Class to Feature Class tool <\/> et cliquez sur Propriétés, puis cliquez sur "Une liste de valeurs." Cliquez sur OK.<\/>Double-cliquez sur la variable pour l'ouvrir et saisissez chaque valeur.<\/><\/>
Plus d'informations sur les variables de liste<\/><\/>
Substitution inline des variables
Avec les variables de liste, les outils s'exécutent plusieurs fois pour traiter chaque entrée. Par défaut, cependant, les noms des sorties des outils seront identiquesce qui signifie que toutes les sorties sauf celle du dernier élément de la liste seront écrasées. Pour contourner cela, utilisez la substitution inline des variables.
Il existe deux types de variables pouvant être substituées dans les processus : les variables du modèle et les variables système. Pour utiliser une variable du modèle pour la substitution inline des variables, il suffit d'entrer le nom de la variable entouré par des signes pourcentage.
La variable système %i% est souvent utilisée pour ajouter un numéro unique et séquentiel à la fin des noms des sorties. La numérotation des éléments de la liste commence à 0 (le nom de sortie du premier élément aura un 0 ajouté).
Pour cet exemple, vous ouvririez l'outil Feature Class to Feature Class et ajouteriez un i minuscule entouré par des signes pourcentage à la fin du nom de la classe d'entités en sortie (ASAM dans ce cas).

L'utilisation de la variable système garantit que le modèle traitera correctement et créera les trois sorties nécessaires. Cependant, les noms des sorties ne sont pas descriptifs. Vous pourriez les renommer plus tard, mais pourquoi ne pas automatiser ce travail maintenant ?
Outils réservés au modèle
ModelBuilder inclut un ensemble d'outils disponibles uniquement pour les modèles qui seront exécutés à l'intérieur de ModelBuilder (c'est-à-dire qu'ils ne fonctionneront pas lorsque le modèle est exécuté comme un outil). L'outil Parse Path vous permet de séparer un chemin d'entrée en ses parties composantes, puis de référencer ces parties dans les processus en aval.
Dans cet exemple, l'outil Parse Path est une meilleure alternative à l'utilisation d'une variable système pour les processus du modèle. Il permet d'utiliser les noms des shapefiles d'entrée dans les noms des sorties au lieu de numéros cryptiques.
- Note : Pour les processus qui créent des données intermédiaires, utiliser une variable système est une bonne solution lorsque les noms des sorties doivent être uniques mais que vous n'avez pas besoin que ces noms évitent toute confusion.
Pour ajouter l'outil Parse Path : 
- Cliquez sur le menu Insérer > Outils réservés au modèle > Parse Path.
- A partir de la fenêtre du modèle, ouvrez l’outil Parse Path. Pour Élément Données Entrée, choisissez Input Shapefile.
- Pour Type d’Analyse, choisissez Nom, puis cliquez sur OK.
- Connectez la sortie Parse Path (Valeur) à l’outil Feature Class to Feature Class comme Classe d’Entités en Sortie.

Lorsque vous survolez l’élément sortie Feature Class to Feature Class, vous pouvez voir que les trois sorties ont maintenant des noms correspondant aux noms des shapefiles d’entrée. Cela rendra immédiatement compréhensibles les sorties du modèle aux personnes qui doivent travailler avec ces données.
Préconditions
Avez-vous remarqué que l’élément Input Shapefile est maintenant lié à deux outilsParse Path et Feature Class to Feature Classet que Parse Path ne fait pas partie du flux principal du modèle ? Lorsqu’un modèle contient des processus séparés mais liés, l’ordre dans lequel ces processus s’exécutent est imprévisible. Vous pouvez contrôler l’ordre d’exécution en définissant une précondition.
Dans cet exemple, il existe un risque que le processus Feature Class to Feature Class s’exécute avant le processus Parse Path... ce qui signifie que les sorties du modèle seront écrasées au fur et à mesure que chaque élément de la liste sera traité.

Pour garantir que l’outil Parse Path s’exécute toujours avant Feature Class to Feature Class, faites en sorte que l’élément Valeur soit une précondition pour l’outil Feature Class to Feature Class.
Pour définir une précondition :
- Cliquez-droit sur l’outil Feature Class to Feature Class et cliquez sur Propriétés.
- Dans la boîte de dialogue, cliquez sur l’onglet Préconditions et cochez Valeur. Cliquez sur OK.
Tout élément du modèle peut être défini comme précondition pour un outil du modèle, et un outil peut avoir plus d’une précondition.
Allez-y, modélisez-le
</ p >
En cartographiant visuellement les workflows, l'automatisation des tâches chronophages et le soutien aux tests rapides de scénarios "et si", les modèles sont un outil précieux pour aider les professionnels SIG à travailler de manière plus efficace et collaborative. Avec une bonne compréhension des bases de la modélisation et quelques techniques avancées dans votre poche, vous pourriez vous retrouver à saisir toutes les occasions de construire des modèles dans ArcGIS. Parce qu'en plus d'être des chevaux de trait du géotraitement, les modèles sont... amusants.<\/P>
<\/P>
Articles connexes :<\/STRONG><\/P>ModelBuilder 101<\/A><\/LI>ModelBuilder 220 : Ajouter de la flexibilité<\/A><\/LI><\/UL>
Pour une pratique concrète avec ModelBuilder, ce
cours en ligne<\/A> est recommandé.<\/P><\/BODY><\/HTML>