Revit : Comment importer des données de Excel

Revit : Comment importer des données de Excel

Dans le dernier tutoriel (ici), ma collègue Katia vous montrait comment exporter des tableaux de Revit vers Excel. Pratique pour ceux et celles qui ne travaillent pas avec Revit.

Après les modifications faites dans Excel, il serait évidemment utile de mettre à jour ces informations dans la maquette Revit. Il existe une panoplie de plugin, gratuit ou moyennant des coûts minimes. Nous allons le faire nous même avec Dynamo et Python.

L'idée est simple : Retrouver les éléments Revit avec une liste du fichier Excel (nom, numéro ou Id par exemple) et mettre à jour un paramètre si les éléments Revit sont retrouvés.

Nous allons faire un exemple avec un tableau des pièces en mettant à jour les superficies théorique de pft, afin de les comparer avec celles du projet.

Prérequis: Seulement Revit avec Dynamo 2.0

  1. Création d'un dictionnaire sur Dynamo
  2. Lier un fichier Excel avec une liste de numéro de pièces
  3. Extraire les données pour la mise-à-jour
  4. Mise à jour du paramètre

Une vue d'ensemble du graph Dynamo

 

Ces 4 étapes sont les mêmes pour toutes mises à jour de données. Le défi ici est d'extraire les données sans altérer le fichier Excel (qui est déjà formaté et qui continuera d'évoluer).

Un exemple de tableau avec les superficies de programmation à atteindre.

Le principe d'un dictionnaire est simple, vous devez fournir deux listes : le premier étant le sujet et le deuxième sa définition. Dans notre exemple le sujet est le numéro de pièce et la définition est la pièce en question dans Revit en tant qu'élément.

Il y a une panoplie de nœuds et pack pour créer un dictionnaire. Vous pouvez aussi télécharger celui que j'ai fait (DictCreationAndSearch).  L'entrée ListOfKey est  une liste de numéro de pièces qui sont dans Revit.

L'entrée "Lookfor" est proviendra de la liste Excel.

 

Par la suite, il faut lier le fichier Excel, et choisir seulement la colonne des numéros de pièce. Si le numéro n'existe pas, la valeur de retour du dictionnaire sera "nul". Autrement vous aurez l'élément pièce en question.

Il faut manipuler les listes de données pour être en mesure d'extraire seulement ce que l'on souhaite. Il n'y a pas un fichier Excel identique et nous ne voulons surtout pas altérer le fichier maître.

En listant les superficies, il faut parfois manipuler les valeurs. Ex: Dynamo ne reconnait pas la virgule, alors il faut la remplacer par un point.

Dynamo ne reconnait pas la virgule, alors il faut la remplacer par un point. La fonction String.Replace est utilisée  à cette étape.

Une fois les élements "pièces" trouvés, il suffit de changer les valeurs d'un nom de paramètre avec Dynamo et la colonne désirée dans Excel.

Il ne faut pas oublié de changer le type de données de string à number.

Peut-on simplifier tout cela et le rendre encore plus automatisé? Bien sûr, avec de la programmation en C# ou Python. Nous avons des scripts à l'internes et l'exemple ici est pour la compréhension.

Maintenant à votre tour. Bon Dynamo!

RTV Tools - Impression Rapide

RTV Tools - Impression Rapide

Nomenclature - Exportation vers Excel