Les pré-conditions permettent de contrôler explicitement l'ordre d'exécution des opérations dans un modèle. Par exemple, un processus peut être amené à s'exécuter après un autre processus en rendant la sortie du premier processus une condition préalable (ou pré-condition) à l'exécution du second processus. Toute variable peut être définie comme pré-condition à l'exécution d'un outil, et tout outil peut être associé à plusieurs pré-conditions.
Exemple 1 - Définition d'une variable de données comme pré-condition
Dans cet exemple, deux processus distincts, mais connexes, seront connectés à l'aide d'une pré-condition afin qu'un processus s'exécute avant l'autre. La première chaîne des processus crée un nouveau jeu de classes d'entités au sein d'une nouvelle géodatabase fichier. Le second processus découpe une classe d'entités en une zone d'étude, puis écrit la sortie dans le jeu de classes d'entités nouvellement créé.
Si le modèle ci-dessus est exécuté tel quel, il n'existe aucun moyen de contrôler l'ordre des opérations ; l'outil Découper peut s'exécuter avant que son emplacement en sortie soit créé, ce qui provoquera une erreur. Un moyen d'éviter ce problème consiste à exécuter les processus Créer une géodatabase fichier et Créer un Jeu de classes d'entités en premier. Pour cela, cliquez avec le bouton droit sur le processus et sélectionnez Exécuter, puis exécutez le processus Découper.
Toutefois, cette méthode d'exécution d'outils individuels ne fonctionne que dans ModelBuilder. Que se passe-t-il si vous devez exécuter le modèle en dehors de ModelBuilder ou le modèle entier en une fois, et non un outil après l'autre ?
Les pré-conditions permettent de contrôler explicitement l'ordre d'exécution des opérations dans un modèle. Dans le modèle ci-dessous, la nouvelle variable Jeu de classes d'entités est spécifiée comme condition préalable à l'exécution de l'outil Découper. En ce faisant, l'outil Découper ne s'exécute qu'une fois le nouveau jeu de classes d'entités créé.
Exemple 2 - Définition d'une variable booléenne comme pré-condition
Dans l'exemple ci-dessus, une variable de jeu de classes d'entités a été utilisée comme pré-condition à l'exécution d'un outil. Une variable booléenne utilisée comme pré-condition se comporte différemment des variables de données, telles que les jeux de classes d'entités ou les classes d'entités. Avec les variables booléennes, ModelBuilder lit la valeur TRUE ou FALSE de la variable au lieu de déterminer si les données ont été créées ou non. Si la valeur est TRUE, la pré-condition est satisfaite et l'outil dépendant s'exécute. Si la valeur est FALSE, la pré-condition n'est pas satisfaite et l'outil dépendant ne s'exécute pas. Dans l'exemple ci-dessous, une variable booléenne, Exécuter le modèle devient une pré-condition à un outil.
La variable de pré-condition booléenne est convertie en paramètre de modèle de sorte qu'elle est exposée lorsque la boîte de dialogue de l'outil du modèle s'ouvre. Dans celle-ci, l'activation du paramètre Exécuter le modèle définit la variable sur TRUE. Ainsi, lorsque le modèle est exécuté, le processus dépendant dans le modèle (Ajouter un champ) s'exécutera. Si le paramètre Exécuter le modèle n'est pas activé, la variable booléenne a la valeur FALSE, et lorsque le modèle est exécuté, le processus dépendant dans le modèle ne s'exécutera pas, car la pré-condition n'est pas satisfaite. Si le paramètre n'est pas activé, l'exécution du modèle génèrera un message d'avertissement : "Le processus n'a pas été exécuté car la pré-condition est fausse".
Pour en savoir plus sur la création de variables de modèle de types différents, reportez-vous à la rubrique Création de variables.
Exemple 3 - Définition d'une variable de type entier long comme pré-condition
Une variable Long (entier long) se comporte de la même façon qu'une variable booléenne lorsque définie en tant que pré-condition. Si la valeur de la variable Long est un entier positif, elle équivaut à True et le processus dépendant s'exécute. Si la valeur est 0 ou négative, elle équivaut à False et le processus dépendant ne s'exécute pas.