Les outils de modèle sont entièrement intégrés dans l’infrastructure de géotraitement. Vous pouvez les utiliser de la même manière que les autres outils système ou de script. Comme tous les autres outils de géotraitement, vous pouvez exécuter les outils de modèle à partir d'une boîte de dialogue, avec un script Python, ou les ajouter à un autre modèle et les exécuter à partir de ce modèle.
Le fait d’ajouter et d’exécuter un outil de modèle dans un autre modèle est souvent appelé un sous-modèle, un modèle imbriqué ou un modèle dans un modèle. Il existe deux raisons principales d’utiliser ce type de hiérarchie de modèle : simplifier un modèle complexe volumineux ou permettre une utilisation plus poussée des itérateurs de modèle.
Simplifier un modèle volumineux complexe
L'incorporation d'un outil de modèle dans un autre modèle permet de diviser des traitement volumineux complexes en unités de modèle plus petites, plus facile à gérer et à réutiliser dans d’autres modèles ou scripts. Il est également possible de modifier et d’exécuter à nouveau ces sous-modèles sans avoir à exécuter à nouveau le processus entier. Si une erreur se produit dans un sous-modèle, vous apportez des corrections uniquement à ce modèle, puis vous l’exécutez à nouveau, sans exécuter tout le processus.
Le grand modèle ci-dessus peut être décomposé en quatre sous-modèles et un modèle principal. Les sous-modèles peuvent être ajoutés à un modèle principal et reliés à un traitement final. Lorsqu'un sous-modèle est ajouté à un autre modèle, sa sortie finale est ajoutée en tant que variable en sortie.
Utilisation avancée des itérateurs de modèles
L'incorporation d’un outil de modèle dans un autre modèle permet également une utilisation plus avancée des itérateurs de modèle. Lorsqu’un workflow nécessite l’itération de modèles, les outils ou processus spécifiques à exécuter plusieurs fois doivent être séparés de ceux à exécuter une seule fois par workflow. Dans ce cas, tous les outils à exécuter plusieurs fois doivent être placés dans un modèle avec un itérateur de modèle et utilisés comme sous-modèle. Les outils à exécuter une seule fois doivent être placés dans le modèle principal, qui appelle le sous-modèle d'itération.
L’exemple ci-après est un workflow automatisé qui gère un ensemble d’entrées provenant d'une géodatabase. L'outil Combiner accepte plusieurs classes d’entités en entrée à combiner, mais il n’existe aucun moyen automatique d’ajouter toutes les classes d’entités à partir d'un espace de travail donné. Dans ce cas, l’itérateur de modèle Itérer dans des classes d’entités peut être utilisé en combinaison avec l'outil Recueillir des valeurs pour lire toutes les classes d’entités dans un espace de travail et les rassembler toutes dans une seule variable. Ces deux traitements devant être exécutés plusieurs fois (itérations), ils sont ajoutés à un sous-modèle, alors que l'outil Combiner, qui doit être exécuté une seule fois, est ajouté au modèle principal et relié à la sortie du sous-modèle Itérer dans des classes d’entité/Recueillir des valeurs.
Voici une description détaillée de la façon dont le workflow complet a été créé. Reportez-vous à la rubrique Terminologie essentielle de ModelBuilder pour plus d'informations sur les termes et techniques décrits ci-après.
- Créez deux modèles : un principal et un sous-modèle, ce dernier étant imbriqué dans le premier. Ajoutez l'outil Combiner au modèle principal et l’itérateur Itérer dans des classes d’entités et l’outil Recueillir des valeurs au sous-modèle.
- Dans le sous-modèle, définissez l’espace de travail contenant les classes d’entités à combiner comme entrée de l’itérateur Itérer dans des classes d’entités. Pour itérer uniquement dans les classes d’entités ponctuelles, définissez le paramètre Type d’entités de Itérer dans des classes d’entités à POINT.
- Reliez la variable en sortie Itérer dans des classes d’entités Classe d’entités en sortie à l'outil Recueillir des valeurs, de sorte que le chemin de chaque classe d’entités ponctuelles dans l’espace de travail soit itéré et recueilli.
- Faites de la variable d’espace de travail en entrée et de la sortie de l'outil Recueillir des valeurs des paramètres de modèle. Renommez la variable d’espace de travail en entrée Jeu de données en entrée afin de vous assurer que le nom de la variable est pertinent et facile à comprendre.
- Enregistrez et fermez le sous-modèle, puis ajoutez-le en tant que traitement au modèle principal.
- Définissez la variable en sortie du sous-modèle comme les Jeux de données en entrée de l'outil Combiner. Vérifiez que la sortie de l’outil Combiner possède un chemin valide.
- Renommez la variable en entrée du sous-modèle Jeu de données en entrée et la variable en sortie de l'outil Combiner Sortie de Combiner. Définissez les variables Jeu de données en entrée et Sortie de Combiner en tant que paramètres du modèle.