BIM System Blog en Français

Revit: Placer des éléments en coordonnées avec Dynamo

Pour autant que je sache, pour le moment, il est impos­si­ble d’in­sér­er des élé­ments dans Revit dans cer­taines coor­don­nées. Vous devez utilis­er Auto­CAD en tant qu’in­ter­mé­di­aire. Cepen­dant, avec l’aide de Dynamo, vous pou­vez automa­tis­er la local­i­sa­tion d’ob­jets avec des coor­don­nées précises.

L’ex­em­ple d’u­til­i­sa­tion le plus courant con­siste à entr­er les coor­don­nées d’un site à par­tir d’une table fournie par le four­nisseur de ser­vices de lev­és. Générale­ment, des plans de CAD géoréférencés sont égale­ment livrés. Toute­fois, nous avons sou­vent con­staté des erreurs de pré­ci­sion lors du posi­tion­nement des coor­don­nées sur un fichi­er CAD lié dans Revit. C’est pourquoi la néces­sité de saisir les points de la table de coor­don­nées stock­ée dans un fichi­er Excel est apparue.

En général, la déf­i­ni­tion du dynamo suit ce proces­sus simple:

  1. Lit les don­nées dans le fichi­er .xlsx
  2. Place des instances de famille (de colonne struc­turelle 2D dans cet exem­ple) à cha­cun des points de coordonnées.
  3. Des­sine les lim­ites de la pro­priété avec les lignes du modèle.
  4. Vous pou­vez éventuelle­ment mar­quer les points de coordonnées.
  5. Un plan­ning de coor­don­nées précédem­ment con­fig­uré est rempli.

La pre­mière chose à faire sera de pré­par­er la feuille de cal­cul des coor­don­nées dans Excel. L’or­dre des colonnes déter­min­era l’or­dre dans lequel nous don­nerons plus tard des don­nées de lec­ture dans Dynamo. Les don­nées sont en mm dans cet exemple.

Coor­don­nées Excel

Si nous tra­vail­lons avec des valeurs de coor­don­nées très élevées, au-delà des lim­ites de l’e­space de tra­vail pré­cis dans Revit, il est vive­ment recom­mandé de spé­ci­fi­er d’abord les valeurs des points de mesure à un point proche de celles que nous allons présen­ter, et de préférence l’un des points du site. J’ai choisi P1 pour ce cas.

Spé­ci­fi­er les coor­don­nées au point pour le point d’enquête

Avant d’en­tr­er dans les détails, voyons rapi­de­ment com­ment cela fonc­tionne lorsqu’il est exé­cuté à par­tir de Dynamo Play­er. Il est tou­jours con­seil­lé d’accéder à l’édition des don­nées d’entrée avant d’exécuter l’outil. Cer­taines valeurs de champs peu­vent être mod­i­fiées, si nécessaire.

Affichage des entrées d’édi­tion dans Dynamo Player

Dans tous les cas, une fois exé­cuté, grâce aux data|shapes, nous aurons une nou­velle occa­sion de con­firmer ou de mod­i­fi­er les infor­ma­tions saisies. Comme vous pou­vez le con­stater, toutes les options sont intu­itives et leurs valeurs par défaut cor­re­spon­dent aux plus courantes.

For­mu­laire de saisie de don­nées après l’exé­cu­tion de l’outil

Une fois que vous avez appuyé sur OK, une dernière boîte de dia­logue con­tenant les résul­tats s’af­fiche rapidement.

Dernière boîte de dia­logue mon­trant les résultats

Véri­fiez dans Revit si la mise en page et les points cor­re­spon­dent à ceux que nous atten­dions, ain­si que le con­tenu du tableau. Nous voyons égale­ment qu’ils sont éti­quetés et, dans une vue de face en 3D, l’altitude de chaque point est présen­tée, ce qui donne une pente aux lignes de démar­ca­tion de la propriété.

Comme vous pou­vez le con­stater, son util­i­sa­tion est très sim­ple et ne néces­site pas de tra­vail pré­para­toire de qualité.

Plan d’é­tage dans Revit
Vue de face 3D dans Revit
Table de coor­don­nées dans Revit

Nous allons main­tenant détailler la con­struc­tion du script Dynamo par étapes.

Tout d’abord, nous voyons un groupe de nœuds avec lequel une sélec­tion par défaut du chemin dans lequel le fichi­er Excel doit être créé, con­for­mé­ment au stan­dard de l’en­tre­prise. Je ne vais pas appro­fondir ce sujet, car il est évidem­ment très per­son­nal­isé, mais je tiens à men­tion­ner qu’il est d’une grande aide d’éviter les clics sup­plé­men­taires dans la recherche du fichi­er dans un réseau d’en­tre­prise com­por­tant de nom­breux réper­toires et gag­nant beau­coup de temps lors de l’exé­cu­tion de la déf­i­ni­tion. Garder à la norme a un prix. Ce groupe de nœuds ali­mente la valeur par défaut du chemin de fichi­er du prochain groupe que nous ver­rons ensuite.

Groupe pour définir le chemin par défaut du fichi­er Excel

Avant l’in­cor­po­ra­tion dans Dynamo Play­er de l’op­tion de mod­i­fi­ca­tion des don­nées d’en­trée, il n’ex­is­tait aucun autre moyen de con­trôler dif­férentes options par l’u­til­isa­teur. Avec les nœuds de data|shapes (de Mostafa el Ayoubi), il était pos­si­ble de don­ner cette inter­ac­tion aux util­isa­teurs avec dif­férents types de boîtes de dia­logue et d’entrées de don­nées. Une fois que cela était pos­si­ble avec Dynamo Play­er, j’ai gardé les data|shapes les fonc­tion­nal­ités dans mes déf­i­ni­tions, car je pense qu’elles sont encore plus flex­i­bles et con­viviales et per­me­t­tent des étapes inter­mé­di­aires avec l’ac­tion de l’u­til­isa­teur. De plus, ces édi­tions de don­nées d’en­trée sont for­cées, alors que dans Dynamo Play­er, elles sont masquées et il est fréquent de les oubli­er. Nor­male­ment, les valeurs par défaut seront celles souhaitées et il vous suf­fi­ra de con­firmer avec OK pour con­tin­uer l’exécution.

Groupe de nœuds pour pré­par­er le pre­mier for­mu­laire de don­nées d’entrée

Dans le groupe de nœuds suiv­ant, le fichi­er Excel est lu et les don­nées sont scindées de chaque colonne, à l’ex­clu­sion des en-têtes.

Com­ment lire et scinder les don­nées Excel

Nous arrivons main­tenant à une opéra­tion de con­ver­sion et de rota­tion des points par rap­port au point d’o­rig­ine interne de Revit. Cela est néces­saire pour nous assur­er que les points seront cor­recte­ment local­isés. C’est-à-dire que dans les cas où, pour une rai­son quel­conque, le point de sondage a changé par rap­port à l’o­rig­ine interne et / ou une rota­tion de l’an­gle du pro­jet a déjà été effec­tuée. Si rien de tout cela n’a été fait, il n’y a pas de prob­lème, car les valeurs avec lesquelles il fonc­tionne sont 0 et le résul­tat n’est pas modifié.

L’opéra­tion prin­ci­pale est masquée à l’in­térieur du nœud Point.Translate, illus­tré dans l’im­age suivante.

Le groupe suiv­ant est chargé de localis­er la famille choisie dans les points déjà déplacés vers la référence d’o­rig­ine et de s’as­sur­er qu’ils le font au niveau de la vue choisie lors des étapes précédentes.

Le nœud View.GetLevel est ouvert dans l’im­age suivante.

Déplace­ment des points de coor­don­nées et place­ment des familles.
Noeud per­son­nal­isé Point.Translate
Noeud per­son­nal­isé View.GetLevel

Nous con­tin­uons avec la copie des valeurs de coor­don­nées selon les paramètres per­son­nal­isés des familles que nous avons choisies pour représen­ter les points de coordonnées.

Copi­er les coor­don­nées et le nom des points dans des paramètres personnalisés

Ensuite, les lignes de pro­priété sont dess­inées en traçant un poly­gone entre les points et ceux-ci sont éti­quetés, si nous l’avons décidé auparavant.

Dessin de tracé et mar­quage de points
Noeud per­son­nal­isé Polygon.ByPoints
Noeud per­son­nal­isé Tag.ByElementLocationAndType

Et enfin, nous util­isons les data|shapes à nou­veau pour affich­er une dernière boîte de dia­logue pour con­firmer le résul­tat. À mon avis, il est extrême­ment utile de le faire avec toutes les déf­i­ni­tions afin que l’u­til­isa­teur ait une idée plus pré­cise de ce qui s’est passé et si tout s’est bien passé avant de le revoir dans Revit.

Groupe pour génér­er le mes­sage de résul­tat final

J’e­spère que cette expli­ca­tion a été suff­isam­ment claire, sans toute­fois entr­er dans de nom­breux détails pour qu’elle ne soit pas trop fas­ti­dieuse. Je vous encour­age à laiss­er des com­men­taires pour répon­dre aux ques­tions et même à pro­pos­er des améliorations.

Image de déf­i­ni­tion complète

Notes et remerciements:

· Le présent tuto­riel Dynamo a pour objec­tif d’aider mod­este­ment au développe­ment de l’au­toma­ti­sa­tion dans les proces­sus de tra­vail du monde AEC.

· Pour des raisons de con­fi­den­tial­ité et en rai­son de sa per­son­nal­i­sa­tion élevée, aucun des scripts ne peut être partagé.

· Mer­ci à tous les développeurs de pack­ages pour Dynamo, sans les efforts, les con­seils et la générosité desquels il serait impos­si­ble d’é­ten­dre le pou­voir de per­son­nal­i­sa­tion de Revit, aug­men­tant ain­si con­sid­érable­ment son effi­cac­ité. Je voudrais soulign­er en par­ti­c­uli­er le tra­vail de:

· Mostafa El Ayoubi (data | shapes)

· Andreas Dieck­mann (Clock­work)

· Kon­rad K Sobon (archi­lab & BumbleBee)

· Nate Miller (Lunch­Box & Rhynamo)

· Dim­i­tar Venkov (SpringN­odes)

· John Pier­son (Rhythm & Bang)

· Julian Benoit (SteamNodes)

· Thomas Mahon (Bimorph)

· Luke John­son (Bak­ery)

· Johnes Hou (Hot Gear)

· Col­in McCrone (Amper­sand)

· Dieter Ver­meulen (BIM4Struc.Rebar)

· Lau­renk Schmidt (Land­form)

· Tomasz Fudala (Struc­tur­al Design)

· Mod­el­i­cal

· Marc Tav­ernier

· Pour ma part, j’ai dévelop­pé des nœuds per­son­nal­isés pour sim­pli­fi­er les déf­i­ni­tions et les réu­tilis­er dans d’autres. Lorsque cela est néces­saire à la com­préhen­sion des tuto­riels, je mon­tre l’im­age du nœud per­son­nal­isé afin qu’il puisse être recréé.