> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/fr/5_essential_nodes_and_concepts/5-5_dictionaries-in-dynamo/4-dictionary-use-cases.md).

# Cas d’utilisation de Revit

Avez-vous déjà voulu rechercher quelque chose dans Revit à partir d'un élément de données qu'il contient ?

Il y a des chances si vous avez procédé comme dans l’exemple suivant.

Dans l’image ci-dessous, vous allez rassembler toutes les pièces dans le modèle Revit, obtenir l’index de la pièce souhaitée (par numéro de pièce), puis sélectionner la pièce au niveau de l’index.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-57ee2173304ed18fe380ba90ddf9f31665e7dd25%2Fdictionary%20-%20collect%20room%20in%20revit%20model.jpg?alt=media)

> 1. Rassemblez toutes les pièces du modèle.
> 2. Numéro de pièce à rechercher.
> 3. Obtenez le numéro de chambre et trouvez l’index correspondant.
> 4. Obtenez la pièce au niveau de l’index.

## Exercice : Dictionnaire de pièces

### Partie I : Création d’un dictionnaire de pièces

> Téléchargez le fichier d’exemple en cliquant sur le lien ci-dessous.
>
> Vous trouverez la liste complète des fichiers d’exemple dans l’annexe.

Recréez maintenant cette idée à l'aide de dictionnaires. Vous devez d’abord rassembler toutes les pièces dans votre modèle Revit.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-4f93fd657908d08d5fe64d8e8a9f2d37a06e8f0e%2Fdictionary%20-%20exercise%20I%20-%2001.jpg?alt=media)

> 1. Choisissez la catégorie Revit avec laquelle vous voulez travailler (dans le cas présent, vous travaillez avec des pièces).
> 2. Vous indiquez à Dynamo de collecter tous ces éléments.

Ensuite, vous devez décider des clés que vous allez utiliser pour rechercher ces données. (Pour plus d’informations sur les clés, consultez la section [Qu’est-ce qu’un dictionnaire ?](/fr/5_essential_nodes_and_concepts/5-5_dictionaries-in-dynamo/1-what-is-a-dictionary.md)).

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-1ec0f12a502edf4cea266e84cbef36bc69bb4cf4%2Fdictionary%20-%20exercise%20I%20-%2002.jpg?alt=media)

> 1. Les données que vous utilisez sont les numéros de pièce.

Vous allez maintenant créer le dictionnaire avec les clés et les éléments donnés.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-2293c774b2396d2f4f01dfa23b073f1c58813ce0%2Fdictionary%20-%20exercise%20I%20-%2003.jpg?alt=media)

> 1. Le nœud **Dictionary.ByKeysValues** crée un dictionnaire en fonction des entrées appropriées.
> 2. `Keys` doit être une chaîne, tandis que `values` peut être une variété de types d’objets.

Enfin, vous pouvez extraire une pièce du dictionnaire avec son numéro de pièce.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-f4e7a958d123c0119fa00b3eebe2054f92ceea93%2Fdictionary%20-%20exercise%20I%20-%2004.jpg?alt=media)

> 1. `String` est la clé que vous utilisez pour rechercher un objet dans le dictionnaire.
> 2. Désormais, **Dictionary.ValueAtKey** obtiendra l’objet à partir du dictionnaire.

### Partie II : Recherche de valeurs

Cette logique de dictionnaire permet également de créer des dictionnaires contenant des objets groupés. Si vous voulez rechercher toutes les pièces à un niveau donné, vous pouvez modifier le graphique ci-dessus comme suit.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-f5680fd0df22a9a1add6ef0e5b5b07ccf0baa0bd%2Fdictionary%20-%20exercise%20II%20-%2001.jpg?alt=media)

> 1. Au lieu d’utiliser le numéro de pièce comme clé, vous pouvez maintenant utiliser une valeur de paramètre (dans le cas présent, vous allez utiliser le niveau).

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-5b4595a2050e731526ab4494549c40175516e9e1%2Fdictionary%20-%20exercise%20II%20-%2002.jpg?alt=media)

> 2. Maintenant, vous pouvez regrouper les pièces selon le niveau sur lequel elles résident.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-38c09a4621fd9d92d96a77c6bce3b1252d549bac%2Fdictionary%20-%20exercise%20II%20-%2003.jpg?alt=media)

> 3. Avec les éléments regroupés par niveau, vous pouvez désormais utiliser les clés partagées (clés uniques) comme clés de votre dictionnaire, ainsi que les listes de pièces comme éléments.

![](https://769651524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYIQUByzZePieC1Y9fHzi%2Fuploads%2Fgit-blob-2a2d40fc51954159b92ab916f1090e9617cfe953%2Fdictionary%20-%20exercise%20II%20-%2004.jpg?alt=media)

> 4. Enfin, en utilisant les niveaux du modèle Revit, vous pouvez rechercher les pièces qui résident sur ce niveau dans le dictionnaire. `Dictionary.ValueAtKey` prend le nom du niveau et renvoie les objets de pièce à ce niveau.

Les possibilités d’utilisation du dictionnaire sont infinies. La possibilité de lier vos données BIM dans Revit à l'élément lui-même offre une variété de cas d'utilisation.
