Exemple Dynamo : lire un fichier XML

Olivier Bayle Olivier Bayle 07/03/2016

2 min de lecture

Le fichier XML (eXtensible Markup Language) est un fichier texte particulier qui permet de stocker des informations en respectant une structure donnée. Ce type de fichier permet d’échanger des informations entre diverses applications.

A ce titre, je vous propose de lire et d’utiliser les informations contenues dans un fichier au format XML à partir de Dynamo For Revit.

Voici le fichier au format XML que j’ai crée :

 

image

 

Nota : fichier disponible en fin de document.

Comme vous pouvez le voir, ce format répond à une syntaxe et un balisage précis.

Pour plus de renseignements, le lecteur pourra se rendre à cette adresse.

Le but sera d’écrire certaines données dans les commentaires d’un objet sélectionné dans Revit.

 

1- Import du fichier au format XML dans Dynamo :

    C’est très simple, il suffit d’utiliser deux nœuds:

– “File Path” : permet d’indiquer le chemin où se trouve le fichier au format SAT,

– “File.ReadText : lit le fichier et le transforme en ligne de caractère.

 

image

 

2- Extraire des données :

    Pour extraire les données issues du fichier, je vais utiliser un package qui s’intitule “LunchBox for Dynamo” que vous pouvez télécharger dans l’interface de Dynamo dans le menu “Packages\ Rechercher un package…”

 

image

 

Je vais utiliser le nœud “DataSets.DeserializeXML” qui extrait les données du fichier XML et affiche le nom des variables ainsi que leurs valeurs.

 

image

 

A la lecture de la structuration des données, je vais extraire par exemple les informations concernant le premier mur.

Créer un “Codeblock” (double click sur l’interface Dynamo) me permet d'extraire des données d’une liste ou sous liste, voici la structure “Variable[Indice1][Indice2]…”. D’où le résultat ci-dessous:

 

image

 

Concernant la liste "nœud", il y a une donnée en trop  : “Murs”. Nous allons la supprimer dans le liste en utilisant “List.RestOfItems”.

 

3- Mise en forme :

Une fois extraites les données voulues, nous allons les mettre en forme.

Nous allons :

– fusionner les deux listes en une en utilisant le nœud '”List.create”,

– organiser la liste avec le nœud “Transpose”,

– séparer les valeurs et les données par un séparateur à l’aide du nœud “String.Join”,

– transformer la liste en chaîne de caractères avec le nœud “String from Array”

 

image

 

4- Stocker les données dans les commentaires d’un objet:

Pour faire simple, nous allons stocker les données récoltées dans les commentaires d’un objet sélectionné de Revit.

– utiliser le nœud “ Select Model Element” et cliquer sur l’élément dans l’interface Revit (par exemple un mur),

– créer un nœud “String”, en introduisant le texte “Commentaires”,

– envoyer les données vers l’objet sélectionné : “Element.SetParameterByName”,

 

image

Voici le résultat dans Revit :

 

image

 

Téléchargement :

    – Fichier XML 

    – Fichier Dynamo

Abonnement e-mail