Exemples d’utilisation d’outils logiques dans ModelBuilder
Outil Données présentes
L’exemple suivant utilise l’outil If Data Exists (Données présentes) pour vérifier si les entités en entrée provenant d’un paramètre de modèle existent. L’outil Données présentes a deux sorties booléennes : True (Vrai) et False (Faux). Si l’entrée existe, la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de l’outil Calculate Field (Calculer un champ). Si la variable en sortie False (Faux) est vraie (les données n’existent pas), le modèle effectue une copie d’un autre jeu de données et exécute l’outil Calculate Field (Calculer un champ) en utilisant le jeu de données de substitution en entrée.

Outil Champ présent
L’exemple suivant utilise l’outil If Field Exists (Champ présent) pour contrôler l’existence de champs portant un nom spécifique dans un jeu de données. L’outil Champ présent a deux sorties booléennes : True (Vrai) et False (Faux). Si le champ n’existe pas dans le jeu de données en entrée, la variable en sortie False (Faux) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de l’outil Add Field (Ajouter un champ). Si la variable en sortie True (Vrai) est vraie (c’est-à-dire si le champ existe), le modèle s’achève puisqu’aucun outil n’est connecté à la branche True (Vrai).

Outil Sélection présente
L’exemple suivant utilise l’outil If Selection Exists (Sélection présente) pour contrôler l’existence d’entités sélectionnées dans l’entrée et, dans ce cas, leur nombre. L’outil If Selection Exists (Sélection présente) est utilisé après l’exécution préalable de l’outil Selection Layer By Attribute (Sélection de couche par attribut). L’outil Sélection présente a deux sorties booléennes : True (Vrai) et False (Faux). Si l’entrée comporte des entités sélectionnées, la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de l’outil Summary Statistic (Résumés statistiques). Si la variable en sortie False (Faux) est vraie (c’est-à-dire si aucune entité n’est sélectionnée), le modèle s’achève puisqu’aucun outil n’est connecté à la branche False (Faux).

Outil Système de coordonnées égal à
L’exemple suivant utilise l’outil If Coordinate System Is (Système de coordonnées égal à) dans ModelBuilder pour vérifier si un jeu de données possède un système de coordonnées donné. L’outil Système de coordonnées égal à a deux sortie booléennes : True (Vrai) et False (Faux). Ce modèle exécute une itération sur les classes d’entités dans une géodatabase et vérifie que chaque classe d’entité possède un système spécifique de coordonnées projetées. Si chaque classe d’entités ne possède pas un système de coordonnées spécifique, la variable en sortie Faux et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de l’outil Projeter. Si la variable en sortie True (Vrai) est vraie (le jeu de données en entrée possède le système de coordonnées spécifié), le modèle s’achève car aucun outil n’est connecté à la branche True (Vrai).

Outil Type de données égal à
L’exemple suivant utilise l’outil If Data Type Is (Type de données égal à) pour contrôler le type de données du jeu de données en entrée. L’outil Type de données égal à a deux sorties booléennes : True (Vrai) et False (Faux). Ce modèle contrôle si le paramètre de modèle de données en entrée est un shapefile ou une classe d’entités, puis traite les données en conséquence. Si les données en entrée sont un shapefile, la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de la branche inférieure de plusieurs outils Add Field (Ajouter un champ) et Calculate Field (Calculer un champ). Si la variable en sortie False (Faux) est vraie (c’est-à-dire si les données en entrée ne sont pas un shapefile), le modèle exécute la branche supérieure.

Outil Expression égale à
De nombreuses entités professionnelles ont imposé le port du masque dans le cadre de la protection contre la COVID-19. L’exemple ci-après utilise l’outil If Expression Is (Expression égale à) pour rechercher les entités professionnelles imposant ou non le port du masque. Ce modèle possède un paramètre en entrée nommé Mask (Masque) et, en fonction de sa valeur, sélectionne des données spécifiques pour l’analyse. L’outil Expression égale à a deux sorties booléennes : Vrai et Faux. Le paramètre Expression utilise la substitution de variable en ligne et vérifie la valeur de Masque. Si le paramètre Mask (Masque) est défini sur "Yes", la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’outil Select Layer By Attribute (Sélectionner une couche par attributs) connecté à sélectionner uniquement les entités professionnelles qui imposent le port du masque. Si la valeur du paramètre Masque est définie sur une autre valeur, la variable en sortie Faux et la pré-condition sont définies comme étant fausses et l’outil Sélectionner une couche par attributs connecté est défini pour sélectionner les entités professionnelles n’imposant pas le port du masque.

Outil Type d’entité égal à
L’exemple suivant utilise l’outil If Feature Type Is (Type d’entité égal à) pour vérifier si un jeu de données spécifique est une classe d’entités ponctuelles. L’outil Adds Locations (Ajouter des localisations) accepte uniquement les points en entrée, donc si l’entrée du modèle n’est pas communiquée en points, les entités en entrée peuvent d’abord être converties en points. L’outil Type d’entité égal à a deux sorties booléennes : True (Vrai) et False (Faux). Si les entités en entrée sont des polygones ou des lignes, la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de l’outil Feature to Point (Entité vers point) pour la conversion des entités en points. Si la variable en sortie False (Faux) est vraie (les entités en entrée ne sont pas des polygones ni des lignes), le modèle utilise les entités en entrées telles quelles sans les convertir au préalable en points.
Ce modèle utilise également l’outil Merge Branch (Fusionner des branches) pour fusionner les branches True (Vrai) et False (Faux) afin de pouvoir exécuter la même chaîne d’outils sur chaque branche.

Outil Valeur de champ égale à
L’exemple suivant utilise l’outil If Field Value Is (Valeur de champ égale à) pour contrôler si les données en entrée possèdent une valeur spécifique dans un champ attributaire. L’outil Valeur de champ égale à a deux sorties booléennes : True (Vrai) et False (Faux). Si le champ spécifié comporte la valeur de test, la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de l’outil Apply Symbology from Layer (Appliquer la symbologie d’une couche). Si la valeur de test n’existe pas dans le champ attributaire, la variable en sortie False (Faux) est vraie et l’outil Add Join (Ajouter une jointure) s’exécute avant l’application de la symbologie.

Outil Nombre de lignes égal à
L’exemple suivant utilise l’outil If Row Count Is (Nombre de lignes égal à) pour contrôler le nombre d’enregistrements dans le jeu de données en entrée. L’outil Nombre de lignes égal à a deux sorties booléennes : True (Vrai) et False (Faux). Si le jeu de données en entrée comporte plusieurs entités, la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution de l’outil Dissolve (Fusionner). Si le jeu de données en entrée ne comporte pas plus d’une entité, la variable de sortie False (Faux) est vraie et les outils de l’embranchement inférieur sont exécutés.

Outil Relation spatiale égale à
L’exemple ci-après utilise l’outil If Spatial Relationship Is (Relation spatiale égale à) dans ModelBuilder pour vérifier si une couche possède des entités ayant une relation spatiale avec des entités d’une autre couche. L’outil logique Relation spatiale présente a deux sorties booléennes : True (Vrai) et False (Faux). Dans cet exemple, si des données de criminalité intersectent la zone scolaire, la variable en sortie True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui autorise l’exécution des outils Make Feature Layer (Créer une couche d’entités) et Select Layer by Location (Sélectionner une couche par localisation). Si la variable en sortie False (Faux) est vraie (c’est-à-dire si aucune entité en entrée ne possède la relation spatiale spécifiée avec les entités sélectionnées), le modèle s’achève puisqu’aucun outil n’est connecté à la branche False (Faux).

Outil Valeur égale à
L’exemple suivant utilise l’outil If Value Is (Valeur égale à) pour rechercher des logements abordables dans les listes de biens immobiliers actuels. Le modèle comporte trois paramètres en entrée qui permettent aux acheteurs potentiels de fournir des valeurs pour Type of Property (Type de bien), Maximum Price (Prix maximal) et un choix booléen Are you flexible with the price? (Êtes-vous souple au niveau du prix ?). L’outil logique Valeur égale à vérifie ensuite si l’acheteur potentiel est souple au niveau des valeurs choisies. L’outil Valeur égale à a deux sorties booléennes : True (Vrai) et False (Faux). Si l’acheteur peut faire preuve de souplesse, la variable True (Vrai) et la pré-condition sont définies comme étant vraies, ce qui permet à l’outil Select Layer By Attribute (Sélectionner une couche par attributs) d’ajouter une zone tampon équivalente à 100 000 USD supplémentaires au prix spécifié avant de sélectionner tous les logements des listes de biens immobiliers disponibles. Si l’acheteur ne peut pas faire preuve de souplesse, le paramètre False (Faux) et la pré-condition sont définies comme étant vrais, ce qui permet au second outil Select Layer By Attribute (Sélectionner une couche par attributs) de sélectionner uniquement les logements qui respectent la gamme de prix spécifiée par l’acheteur.
