Créer et gérer des valeurs conditionnelles

Les valeurs conditionnelles, appelées parfois valeurs attributaires conditionnelles, sont une fonction de création de données permettant de rendre les valeurs d’un champ dépendantes des valeurs d’un autre champ. Les domaines attributaires servent à restreindre les entrées valides d’un champ en fonction d’une liste ou d’une plage de valeurs donnée. Les valeurs conditionnelles permettent d’aller encore plus loin en faisant en sorte que le choix d’une valeur dans un champ conditionne les valeurs de domaine sélectionnables pour un autre champ. C’est un moyen de garantir l’intégrité des données, car le fait d’appliquer des contraintes supplémentaires permet de limiter le nombre d’entrées valides dans un champ. Cela peut être utile lors de la modélisation de pièces et de ressources en conditions réelles dans un SIG, notamment pour les entreprises chargées de la gestion des réseaux techniques. Cela peut également présenter un intérêt lors de l’élaboration d’arbres décisionnels ou de sondages. Dans ces deux cas de figure, la décision que vous prenez ou la réponse apportée à une question conditionnerait les options proposées ensuite.

Attention :

La création de valeurs conditionnelles sur une table ou une classe d’entités la rend incompatible avec ArcMap et les versions antérieures à ArcGIS Pro 2.3 et à ArcGIS Enterprise 10.7.x. Reportez-vous à la rubrique Compatibilité client/géodatabase pour en savoir plus sur les fonctions disponibles lors de l’utilisation de différentes versions de client et de géodatabase.

L’achat d’un véhicule est un bon exemple pour démontrer l’intérêt des valeurs conditionnelles.

Voici à quoi pourrait ressembler l’arbre décisionnel : Car Brand (Marque de voiture) > Car Model (Modèle de voiture) > Trim Level (Finition) > Color (Couleur)

Arbre décisionnel pour l’achat d’une voiture

  • Vous commencez par choisir la marque du véhicule, Honda, par exemple.

    Choisissez une marque de voiture.

  • Cette marque propose plusieurs modèles de voiture.

    • Pour Honda, vous pouvez avoir le choix entre les différents modèles suivants : Pilot, CRV, Accord et Civic.

      Choisissez un modèle de voiture.

    • La liste des modèles disponibles pour la marque Toyota est différente.

      Le choix d’une autre marque donne accès à une liste différente de modèles de voiture.

  • En fonction du modèle de voiture choisi, vous aurez le choix entre plusieurs finitions.

    • Dans le cas d’une Honda Pilot, les finitions disponibles sont : LX, EX-L, Sport et Touring.

      Choisissez une finition.

  • Selon la finition choisie, un certain nombre de couleurs de carrosserie sont proposées : Rouge, Bleu, Noir et Blanc, par exemple.

    Choisissez une couleur.

Chaque choix que vous effectuez dans l’arbre décisionnel conditionne les options disponibles ensuite. Le choix d’une autre marque donne accès à une liste différente de modèles de voiture. Le modèle de voiture choisi conditionne les finitions disponibles et à chaque finition peuvent correspondre des couleurs de carrosserie différentes. Selon les choix opérés à chaque étape, vous pouvez aboutir à une Honda > Pilot > EX-L > Blanc ou une Toyota > 4Runner > TRD Sport > Inferno.

Les valeurs conditionnelles permettent de définir ces types de dépendances entre les champs dans vos données : le choix d’une valeur dans un champ ayant pour effet de restreindre la liste des valeurs valides pour un autre champ.

Dans le cas d’un SIG réel, par exemple, considérons la classe d’entités StructureJunction dans le paquetage de ressources d’un réseau technique. Il existe une classe d’entités ponctuelles pour les jonctions de structure possédant des sous-types pour les ressources telles que les pylônes électriques, les bouches d’égout, les plateformes, et ainsi de suite.

Sous-type de pylône avec des domaines attribués à ses champs

En ce qui concerne le sous-type Pole (Pylône), des domaines ont été appliqués à trois des champs. Les domaines limitent les valeurs insérables dans chaque champ en fonction d’une liste de valeurs valides. Le pylône peut, par exemple, appartenir aux classes 1, 2 ou 3 ; il peut être fabriqué en fibre de verre, en bois ou en acier ; et la hauteur possible peut être de 30, 35, 40, 45 pieds et ainsi de suite.

Pour restreindre encore plus les valeurs valides pour cet ensemble de champs, vous pourriez utiliser des valeurs conditionnelles de façon, par exemple, à autoriser uniquement la fibre de verre comme matériau des pylônes de classe 1 et à limiter leur hauteur à 30, 35, 40 ou 45 pieds.

Considérez les valeurs conditionnelles que vous aimeriez appliquer aux valeurs de champ pour le sous-type Pole (Pylône). Voici comment vous pouvez définir, par exemple, l’ensemble des valeurs conditionnelles pour ce groupe de champs (classe, matériau et hauteur) :

TerrainValeurs conditionnellesValeurs conditionnellesValeurs conditionnelles

Classe

1

2

3

Matériau

Fibre de verre

Bois

Acier

Hauteur

30, 35, 40, 45

30, 35, 40, 45

50, 55, 60, 65

Une fois ces valeurs conditionnelles établies, l’insertion d’une nouvelle entité pylône ou la modification d’une entité pylône existante appartenant à la classe 1 vous imposerait de choisir la fibre de verre dans le champ correspondant au matériau. De la même manière, les valeurs de hauteur admissibles pour un pylône en fibre de verre de classe 1 seraient respectivement de 30, 35, 40 ou 45 pieds.

Les valeurs conditionnelles présentent l’intérêt de restreindre encore plus les valeurs valides pour les ensembles de champs et de gérer, de façon plus efficace, la validité et l’intégrité de vos données.

Préparer les données pour les valeurs conditionnelles

Les valeurs conditionnelles sont créées pour des groupes de champs au sein d’une table ou d’une classe d’entités. Avant de définir des valeurs conditionnelles, il convient de configurer ces champs avec les domaines appropriés contenant une liste ou une plage de valeurs valides.

Dans l’exemple de pylône électrique ci-dessus, les valeurs conditionnelles proviennent d’un groupe de trois champs : Class (Classe), Material (Matériau) et Height (Hauteur). Un domaine approprié est attribué à chaque champ. Par exemple, le champ Material (Matériau) possède un domaine pour les matériaux de type Fiberglass (Fibre de verre), Wood (Bois) et Steel (Acier). Une fois que vous avez configuré correctement les valeurs de domaine, attribué les domaines à leurs champs respectifs et déterminé le groupe de champs réservé aux valeurs conditionnelles, vous devez créer les valeurs conditionnelles entre les valeurs de domaine.

Pour créer des valeurs conditionnelles sur une table ou une classe d’entités, vous devez procéder comme suit :

  • Créer des domaines avec une liste ou une plage de valeurs valides
  • Attribuer ces domaines aux champs appropriés d’une classe d’entités ou d’une table
  • Ouvrir la vue des valeurs conditionnelles sur cette classe d’entités ou cette table
  • Créer un groupe de champs contenant les champs qui auront des valeurs conditionnelles
  • Créer des valeurs conditionnelles pour les champs de ce groupe de champs

Remarque :

Lorsqu’une classe de relations plusieurs vers plusieurs ou décrites par des attributs est créée, une table intermédiaire de classes de relations est créée. Cette table intermédiaire de classes de relations n’est pas une classe d’objets. Par conséquent, les domaines, sous-types, valeurs conditionnelles, règles attributaires et valeurs par défaut ne peuvent pas être utilisés avec ce type de table.

Ouvrir la vue des valeurs conditionnelles

C’est dans cette vue que vous créez, supprimez et gérez les valeurs conditionnelles.

Il existe différents moyens d’accéder à la vue des valeurs conditionnelles :

  • Cliquez avec le bouton droit sur une table ou une classe d’entités dans la fenêtre Catalog (Catalogue), pointez sur Data Design (Conception des données), puis cliquez sur Contingent Values (Valeurs conditionnelles).
  • Cliquez avec le bouton droit sur une table ou une classe d’entités dans la fenêtre Contents (Contenu), pointez sur Data Design (Conception des données), puis cliquez sur Contingent Values (Valeurs conditionnelles).
  • Si une couche est sélectionnée dans la fenêtre Contents (Contenu), cliquez sur le bouton Contingent Values (Valeurs conditionnelles) sous l’onglet Data (Données) dans l’ensemble d’onglets Feature Layer (Couche d’entités). Si une table est sélectionnée dans la fenêtre Contents (Contenu), cliquez sur le bouton Contingent Values (Valeurs conditionnelles) sous l’onglet contextuel Standalone Table (Table autonome). Dans le cas d’une couche ou d’une table, cela a pour effet d’afficher la vue Contingent Values (Valeurs conditionnelles).
  • Dans la vue des champs, des sous-types ou des règles attributaires, cliquez sur le bouton Contingent Values (Valeurs conditionnelles) dans le groupe Data Design (Conception de données). Cela a pour effet d’afficher la vue des valeurs conditionnelles.
Remarque :

La première fois que vous accédez à la vue Contingent Values (Valeurs conditionnelles) sur une table ou une classe d’entités, aucune valeur conditionnelle n’est définie et vous êtes invité à créer un groupe de champs.

Vue des valeurs conditionnelles

La vue des valeurs conditionnelles dispose d’un onglet pour créer et gérer les valeurs conditionnelles, et de plusieurs boutons pour basculer sur les autres onglets de création de données.

Onglet Contingent Values (Valeurs conditionnelles)

L’onglet Contingent Values (Valeurs conditionnelles) contient les groupes suivants :

  • Clipboard (Presse-papiers) contient les options standard du Presse-papiers : Paste (Coller), Copy (Copier), Cut (Couper) et Delete (Supprimer).
  • Data Design (Conception de données) inclut les boutons suivants, qui permettent d’ouvrir l’autre vue de conception de données :
    • Champs
    • Sous-types
    • Domaines
    • Règles attributaires
    • Field Groups (Groupes de champs) : propose un bouton permettant d’ouvrir la boîte de dialogue Field Groups (Groupes de champs).
  • Contingent Values (Valeurs conditionnelles) présente les boutons suivants pour créer et gérer des valeurs conditionnelles :
    • New (Nouveau) : ajoute une ligne pour créer des valeurs conditionnelles sur les champs à partir d’un groupe de champs actif dans la vue .
    • Import (Importer) : importe des groupes de champs et des valeurs conditionnelles depuis un fichier de valeurs séparées par des virgules (.csv).
    • Export (Exporter) : exporte des groupes de champs et des valeurs conditionnelles vers un fichier .csv.
    • Retire Value (Retirer la valeur) : permet de définir la ligne en surbrillance comme une valeur conditionnelle retirée. Les valeurs retirées restent visibles à d’autres emplacements de l’interface utilisateur (valeur de champ dans la fenêtre Attribute (Attribut), par exemple), mais elles ne peuvent plus être sélectionnées.
    • Toggle Value IDs (Activer/désactiver les ID de la valeur) : affiche ou masque la valeur Value ID (ID de valeur) dans la grille de données.
    • Toggle Code/Description (Afficher/masquer la description du code) : affiche ou masque le code ou la description du domaine dans la grille de données.
    • Save (Enregistrer) : enregistre toutes les modifications effectuées dans la vue Contingent Values (Valeurs conditionnelles). Les modifications sont conservées en mémoire jusqu’à ce que vous cliquiez sur Save (Enregistrer).

Créer un groupe de champs

Avant de créer des valeurs conditionnelles à l’échelle des champs d’une classe d’entités ou d’une table, vous devez créer un groupe de champs. Un groupe de champs est un ensemble de champs nommé au sein d’une table ou d’une classe d’entités. Dans l’exemple de pylône électrique ci-avant, un groupe de champs correspond à la classe, au matériau et à la hauteur du pylône. Après avoir créé un groupe de champs, vous pouvez attribuer des valeurs conditionnelles aux valeurs de champ de ce groupe.

Pour créer un groupe de champs, procédez comme suit :

Play Video

  • Durée de la vidéo : 0:52
  • Cette vidéo a été créée avec ArcGIS Pro 3.2.
  1. Cliquez sur le bouton Field Groups (Groupes de champs) sous l’onglet Contingent Values (Valeurs conditionnelles).

    La boîte de dialogue Field Groups (Groupes de champs) apparaît.

  2. Dans la section Name (Nom), cliquez sur le texte Click here to add a new field group (Cliquez ici pour ajouter un nouveau groupe de champs).

    Cela a pour effet de créer le groupe de champs Field_Group. Vous pouvez renommer ce groupe de champs.

  3. Cliquez sur le menu déroulant Add Fields (Ajouter des champs).

    Tous les champs de la table ou de la classe d’entités sont répertoriés.

  4. Choisissez les champs à inclure dans le groupe de champs, puis cliquez sur le bouton Add (Ajouter).
    • Servez-vous de la zone de texte Search (Rechercher) en haut de la liste pour trouver un champ spécifique.
    • Pour ajouter la totalité des champs au groupe de champs, cliquez sur Select All (Tout sélectionner), puis sur Add (Ajouter).
  5. Si vous le souhaitez, vous pouvez décocher la case Restrictive (Restrictif).
    • Cochée : un groupe de champs restrictif est créé et les valeurs saisies dans un champ du groupe de champs sont limitées aux champs spécifiés en tant que valeurs conditionnelles. Les groupes de champs sont restrictifs par défaut pour assurer le contrôle de l’expérience de mise à jour lorsque vous utilisez des valeurs conditionnelles.
    • Décochée : le paramètre restrictif est désactivé. Lorsque cette case est désélectionnée, le groupe de champs créé ne subit aucune restriction. Ainsi, les valeurs peuvent être validées dans un groupe de champs même si elles ne sont pas spécifiées comme étant des valeurs conditionnelles.
  6. Cliquez sur OK pour créer le groupe de champs.

Conseil :
Vous pouvez utiliser les raccourcis suivants sur votre clavier pour explorer la boîte de dialogue Fields Group (Groupe de champs) :
  • Ctrl+N : crée un groupe de champs.
  • Alt+G : place le pointeur dans la grille de données Field group (Groupe de champs) en haut de la boîte de dialogue.
  • Alt+A : place le pointeur dans le menu déroulant Add Fields (Ajouter des champs).
  • Alt+F : place le pointeur dans la grille de données Fields (Champs) en bas de la boîte de dialogue.

Créer des valeurs conditionnelles

Après avoir créé un groupe de champs, vous pouvez définir les valeurs conditionnelles pour les champs concernés.

Si la table ou la classe d’entités dans laquelle vous travaillez dans la vue des valeurs conditionnelles est associée à plusieurs groupes de champs, vous pouvez passer de l’un à l’autre en cliquant sur le menu déroulant Field Group (Groupe de champs) et en sélectionnant un autre groupe de champs.

Si la table ou la classe d’entités dans laquelle vous travaillez dans la vue des valeurs conditionnelles possède plusieurs sous-types, vous pouvez passer de l’un à l’autre grâce au menu déroulant Subtypes (Sous-types). Cela vous permet de définir les valeurs conditionnelles différemment pour les champs de chaque sous-type. Assurez-vous que les domaines requis sont appliqués aux champs au niveau du sous-type dans la vue des sous-types avant de commencer.

Pour créer des valeurs conditionnelles dans un groupe de champs, procédez comme suit :

  1. Cliquez sur le bouton New (Nouveau) dans le groupe Contingent Values (Valeurs conditionnelles), ou cliquez sur la ligne vide contenant le message Click to add contingent values (Cliquez pour ajouter des valeurs conditionnelles).
  2. Pour chaque champ du groupe de champs, choisissez une valeur de champ dans le menu déroulant.

    Les valeurs <ANY> et <NULL> peuvent également être ajoutées comme valeurs conditionnelles dans le menu déroulant. La valeur <ANY> est toujours disponible (même si aucun domaine n’est appliqué au champ réservé à la valeur conditionnelle) alors que la valeur <NULL> est disponible à condition que le champ autorise des valeurs nulles.

    • <ANY> : l’ajout de la valeur conditionnelle <ANY> signifie que n’importe quelle valeur insérée sur le champ est considérée comme valide.
    • <NULL> : l’ajout de la valeur conditionnelle <NULL> signifie qu’une valeur nulle insérée sur le champ est considérée comme valide.

  3. Répétez les étapes 1 et 2 pour toutes les valeurs conditionnelles que vous créez.
  4. Remarque :
    Si vous avez appliqué un sous-type, les valeurs conditionnelles s’appliquent uniquement au sous-type répertorié. Pour appliquer les valeurs conditionnelles à d’autres sous-types, cliquez sur la flèche déroulante Subtype (Sous-type), choisissez un autre sous-type, puis répétez les étapes ci-dessus.
  5. Lorsque vous avez terminé, cliquez sur Save (Enregistrer) pour sauvegarder vos modifications.

Dans l’exemple du pylône ci-dessus, dans le groupe de champs appelé Poles Contingency, le jeu de valeurs conditionnelles se présente comme suit :

Valeurs conditionnelles utilisées pour l’exemple de pylône

Une fois les valeurs conditionnelles préparées pour les données, les restrictions que vous avez créées sont appliquées dans l’application chaque fois qu’une valeur est insérée dans un champ pendant la mise à jour. Il peut s’agir, par exemple, d’un champ de la fenêtre Attribute (Attribut) ou de la vue Attribute Table (Table attributaire).

En savoir plus sur la mise à jour des champs avec des valeurs conditionnelles

Retirer une valeur conditionnelle

Vous pouvez retirer une valeur conditionnelle. Lorsque vous retirez une valeur conditionnelle, elle apparaît toujours dans la liste des valeurs valides d’un champ, comme dans la fenêtre Attribute (Attribut), mais elle n’est pas disponible et ne peut pas être sélectionnée comme valeur de champ. Admettons, par exemple, que votre organisation n’utilise plus d’amiante comme matériau de construction, mais qu’il existe encore des endroits où des ressources contiennent de l’amiante. Cela signifie que cette valeur est encore valide dans la mesure où elle figure dans le champ des matériaux de construction de certaines entités, mais que vous ne l’utiliserez plus. Pour éviter de l’appliquer à d’autres champs, vous pouvez retirer la valeur.

Pour retirer une valeur conditionnelle, sélectionnez la ligne concernée et cliquez sur le bouton Retire Value (Retirer la valeur) dans le groupe Contingent Values (Valeurs conditionnelles).

Pour annuler le retrait d’une valeur conditionnelle, sélectionnez la ligne retirée et cliquez sur le bouton Retire Value (Retirer la valeur).

Copier des valeurs conditionnelles d’un jeu de données à un autre

Une fois que des valeurs conditionnelles sont établies pour un jeu de données, vous pouvez les ajouter à un autre jeu de données. Vous pouvez copier des valeurs conditionnelles entre des jeux de données des manières suivantes :

  • Copier et coller
  • Exporter et importer des valeurs conditionnelles

Copier et coller

Il est possible de copier et de coller des éléments dans la vue Contingent Values (Valeurs conditionnelles) à l’aide de raccourcis clavier, du menu contextuel et du presse-papiers. Pour effectuer une opération de copier/coller, certaines conditions doivent être remplies. Le jeu de données de destination doit notamment disposer d’un groupe de champs et celui-ci doit inclure les types de données de champs pertinents. Un domaine doit en outre être appliqué aux champs.

Pour copier des valeurs conditionnelles d’un jeu de données à un autre, procédez comme suit :

  1. Ouvrez la vue Contingent Values (Valeurs conditionnelles) dans le jeu de données d’origine qui contient les valeurs conditionnelles qui vous intéressent et le jeu de données de destination dans lequel les valeurs conditionnelles seront copiées.

    La vue Contingent Values (Valeurs conditionnelles) s’ouvre pour les jeux de données d’origine et de destination.

  2. Dans le jeu de données d’origine, sélectionnez les valeurs conditionnelles à copier dans le jeu de données de destination.

    Les valeurs conditionnelles sont sélectionnées.

  3. Copiez les valeurs conditionnelles sélectionnées à l’aide de la fonction de copie du presse-papiers, du raccourci clavier pour la copie ou de l’option Copy (Copier) du menu contextuel.
  4. Dans le jeu de données de destination, sélectionnez le groupe de champs qui contient les types de données de champs pertinents en fonction des domaines appliqués aux champs, puis collez les valeurs conditionnelles à l’aide de la fonction de collage du presse-papiers, du raccourci clavier pour le collage ou de l’option Paste (Coller) du menu contextuel.
  5. Cliquez sur le bouton Save (Enregistrer) Enregistrer sous l’onglet Contingent Values (Valeurs conditionnelles).

    Les valeurs conditionnelles sont enregistrées dans le jeu de données de destination.

Exporter et importer des valeurs conditionnelles

Les fonctions d’exportation et d’importation peuvent s’avérer utiles dans le cadre du partage de valeurs conditionnelles et de groupes de champs pour une table ou une classe d’entités, ou pour créer une sauvegarde ou mettre à jour une base de données de production sans la verrouiller de manière intensive au niveau de la mise à jour de la structure. Dans le cadre de l’exportation des valeurs conditionnelles d’un jeu de données, deux fichiers de valeurs séparées par des virgules (.csv) sont créés. Le fichier .csv de groupe de champs contient les métadonnées et des informations sur les champs participants, tandis que le fichier .csv de valeurs conditionnelles contient les associations entre les métadonnées et les valeurs conditionnelles.

Exporter des valeurs conditionnelles

Vous pouvez utiliser le bouton Export (Exporter) dans le groupe Contingent Values (Valeurs conditionnelles) sous l’onglet Contingent Values (Valeurs conditionnelles) ou l’outil de géotraitement Export Contingent Values (Exporter les valeurs conditionnelles) pour exporter des groupes de champs et des valeurs conditionnelles.

Pour exporter des groupes de champs et des valeurs conditionnelles pour un jeu de données, procédez comme suit :

  1. Ouvrez la vue Contingent Values (Valeurs conditionnelles) pour le jeu de données qui contient les valeurs conditionnelles à exporter.

    La vue Contingent Values (Valeurs conditionnelles) s’ouvre pour le jeu de données.

  2. Sous l’onglet Contingent Values (Valeurs conditionnelles), cliquez sur le bouton Export (Exporter) dans le groupe Contingent Values (Valeurs conditionnelles).

    La boîte de dialogue Export Contingent Values (Exporter des valeurs conditionnelles) s’ouvre.

  3. Dans Field Group CSV (CSV de groupes de champs) et Contingent Value CSV (CSV de valeurs conditionnelles), indiquez un chemin et un nom pour le fichier .csv ou cliquez sur le bouton Browse (Parcourir), accédez au dossier dans lequel le fichier .csv sera enregistré et saisissez un nom pour le fichier .csv.

    Deux fichiers .csv sont créés : un pour le groupe de champs et un pour les valeurs conditionnelles.

Importer des valeurs conditionnelles

Vous pouvez utiliser le bouton Import (Importer) dans le groupe Contingent Values (Valeurs conditionnelles) sous l’onglet Contingent Values (Valeurs conditionnelles) ou l’outil de géotraitement Import Contingent Values (Importer les valeurs conditionnelles) pour importer des groupes de champs et des valeurs conditionnelles.

Pour importer des groupes de champs et des valeurs conditionnelles pour un jeu de données, procédez comme suit :

  1. Ouvrez la vue Contingent Values (Valeurs conditionnelles) pour le jeu de données qui contient les valeurs conditionnelles à exporter.

    La vue Contingent Values (Valeurs conditionnelles) s’ouvre pour le jeu de données.

  2. Sous l’onglet Contingent Values (Valeurs conditionnelles), cliquez sur le bouton Import (Importer) dans le groupe Contingent Values (Valeurs conditionnelles).

    La boîte de dialogue Import Contingent Values (Importer des valeurs conditionnelles) s’ouvre.

  3. Dans Field Group CSV (CSV de groupes de champs) et Contingent Value CSV (CSV de valeurs conditionnelles), indiquez un chemin et un nom pour le fichier .csv correspondant ou cliquez sur le bouton Browse (Parcourir), accédez au dossier dans lequel chaque fichier .csv est enregistré, puis cliquez sur OK.

    Les valeurs conditionnelles apparaissent dans la vue Contingent Values (Valeurs conditionnelles).

  4. Si vous souhaitez remplacer les valeurs conditionnelles, cochez la case Replace Values (Remplacer les valeurs).

    Cette option vous permet de remplacer les valeurs existantes plutôt que de fusionner les modifications avec les valeurs conditionnelles existantes dans un jeu de données.

  5. Cliquez sur le bouton Save (Enregistrer) Enregistrer sous l’onglet Contingent Values (Valeurs conditionnelles).

    Les valeurs conditionnelles sont enregistrées dans le jeu de données de destination.