facebook
youtube
vimeo
pinterest
instagram
The M. Point

21 ottobre 2017

#BIM #DYNAMO

DYNAMO PER REVIT

dynamologodark-trim

In ambito BIM e implementazione digitale sentiamo molto parlare di Dynamo. In questo articolo voglio spiegare che cos'è Dynamo, come utilizzarlo e in che modo potrebbe aiutarvi a velocizzare i processi durante le fasi di progettazione.


Dynamo è un ambiente di programmazione visuale open source estremamente flessibile che permette di comporre algoritmi personalizzati (procedure o formule per risolvere problemi) per elaborare dati e creare geometrie attraverso un’interfaccia grafica a blocchi (nodi).



PROGRAMMAZIONE VISUALE / VISUAL PROGRAMMING

Un Linguaggio di Programmazione Visuale (Visual Programming Language V.P.L.) è un linguaggio che consente la programmazione tramite la manipolazione grafica degli elementi, i "nodi", e non tramite sintassi scritta (ossia la digitazione di un listato di codice).

La maggioranza dei VPL è basata sull'idea "boxes and arrows" ovvero i "box" (o i rettangoli, le circonferenze ect.) sono concepiti come funzioni connesse tra di loro da "arrows" (le frecce).

I vantaggi della programmazione visuale sono la facilità di apprendimento e la possibilità di visualizzare lo stato del programma durante le fasi debug.



DYNAMO PER GLI ARCHITETTI DIGITALI

Dynamo è stato pensato per architetti, ingegneri e professionisti del mondo delle costruzioni e permette di costruire codici senza possedere conoscenze di programmazione.

Dynamo può essere utilizzato autonomamente ed è capace di interfacciarsi direttamente come plugin per Revit.

Dynamo ha molti vantaggi: l'automazione di attività ripetitive e procedure di lavoro, il controllo delle informazioni, la costruzione di geometrie complesse e parametriche tramite la progettazione algoritmica, il riutilizzo di uno script in diversi progetti, la possibilità di testare varie alternative in fase di progettazione e una maggior interoperabilità tra formati di software diversi.


BREVE STORIA DI DYNAMO

La storia è importante perchè ci permette di migliorarci e reputo opportuno citare chi ha creato questo magnifico applicativo.

Dynamo nasce dalla mente di Ian Keough, mentre lavorava per la società d'ingegneria britannica Buro Happold, con lo scopo di unire il BIM con la programmazione visuale e le progettazione computazionale; prima per la coordinazione dei dati poi per la creazione di geometrie complesse. Da qui il passaggio al colosso americano Autodesk, pur restando open source: infatti il codice sorgente è disponibile per tutti al seguente indirizzo: https://github.com/DynamoDS/Dynamo/


LINK UTILI PER CHI VUOLE APPROCCIARSI A DYNAMO

http://dynamobim.org/: è il sito ufficiale di Dynamo da cui poter scaricare il software, impararne le basi e far uso del fantastico forum, in cui troverete tutte le risposte, ancor prima di farvi le domande :).

http://dynamoprimer.com/en/: è il manuale utente per eccellenza, scritto molto bene e vi permetterà di fare pratica e capire come ragiona l'applicativo.



Non vi scrivo una guida perchè il manuale utente è un ottimo punto di partenza e servirebbe tantissimo tempo; inoltre serve un obiettivo e bisogna ragionare sui nodi per raggiungerlo.


Io nel mio percorso personale ho imparato, grazie al corso tenuto da Simone Versini al Politecnico di Milano, una cinquantina di combinazioni di nodi: dalla creazione di curve, superfici e solidi, all'importazione ed esportazione di dati da/per excel, fino all'uso di elementi adattivi tramite dynamo.


Vorrei quindi mostrarvi due script spiegati in aula, che vi spiegherò passo passo, per capire realmente di cosa stiamo parlando. In Dynamo ci sono diversi modi per raggiungere l'obiettivo prefissato usando i nodi che si conoscono o scaricando quelli programmati da altri utenti, che è possibile scaricare all'interno dell'applicativo.



CREAZIONE DI UN SOLIDO COMPLESSO IN TORSIONE

Il primo script serve a generare all'interno di una massa concettuale in Revit un solido a base quadrata che cresce verso l'alto in torsione. Può essere utile per generare una prima idea di un grattacielo e per capire come distribuirne la superficie.


Come procedimento creiamo 4 punti che uniamo fino a generare un poligono, che trasleremo e ruoteremo per ottenere un solido. In Revit invece adatteremo alle superfici ottenute i muri e i pavimenti per simulare un vero e proprio grattacielo.


Apriamo una massa concettuale (massa metrica) in Revit, poi andiamo su Gestisci, Dynamo, Nuovo file.


Creiamo un quadrato sull'asse cartesiano (x,y) usando dei semplici nodi:

- Code Block: è un nodo che consente di immettere numeri (es. 1, 1..5), stringhe (es. "A".."F" ossia tutte le lettere dalla A alla F); è un po' come il prezzemolo, lo useremo ovunque;

- Point.ByCoordinates: consente di creare un punto collegando come input dei numeri;

- List.Create: permette di unire i 4 punti in una lista;

- Polygon.ByPoints: unisce i punti della lista in automatico secondo l'ordine in cui sono nella lista.


Trasliamo il quadrato lungo il vettore z con una certa distanza che aggiungo con un code block:

- Vector.ZAxis: indica il vettore lungo il quale traslo il quadrato;

- Code Block: indico la distanza (0..100) di traslazione e il passo (..20) in cui voglio che avvenga la rotazione;

- Geometry.Translate: è il nodo che mi fa traslare il quadrato.


Compiuta questa operazione ho fatto click destro sul nodo Geometry.Translate e ho tolto la spunta da Anteprima in modo da nascondere i quadrati traslati e fare spazio a quelli che ruoterò.


Ruotiamo il quadrato traslato in alto:

- Point.Origin: indica il punto generico di origine;

- Vector.ZAxis: indica il vettore che rappresenta l'asse lungo il quale voglio che avvenga la rotazione, ossia l'asse z;

- Code Block: (0..60..6) indica di quanti gradi ruoterà il primo quadrato (0°), di quanti l'ultimo (60°) e di che passo quelli intermedi;

- Geometry.Rotate: nodo per generare la rotazione dei quadrati.


Ricordiamoci di togliere la spunta dall'anteprima anche per le rotazioni.


Generiamo il solido:

- Solid.ByLoft: collegando tra di loro le superfici.


Ci sono due nodi per creare un solido, uno è quello appena descritto, l'altro è Solid.ByRevolve, ossia da rivoluzione.


Esportiamo il solido su Revit:

- ImportInstance.ByGeometry: mi carica la sessione di Dynamo sul file Revit.


A questo punto abbiamo generato un solido e di conseguenza una massa in Revit.

Salviamo la massa e la importiamo in un modello architettonico in Revit.

Qui attraverso gli strumenti Muro da superficie e Pavimento da massa e poi da superficie genero un modello semplificato di un edificio complesso.

d1.PNG
d2.PNG
app41.PNG
app42.PNG

IMPORTAZIONE DELL'ELENCO TAVOLE DA EXCEL A REVIT TRAMITE DYNAMO

Spesso in fase di consegna capita di dover velocizzare dei processi come quello di generare un elenco di tavole in Revit con le stesse caratteristiche e compilare i parametri. Tramite il nodo che vi spiegherò potrete creare in automatico il numero di tavole che desiderate e compilare alcuni parametri in base alla tabella excel che avete scritto.


Ho esemplificato un elenco tavole su excel ed il risultato che voglio ottenere in Revit:


e1.PNG
e4.PNG

Il procedimento sarà quello di importare il foglio del file excel, ordinare la lista in base al riempimento che avrò in Revit, inserire i parametri e generare le tavole.


- File Path: selezione il file excel di partenza;

- File.FromPath: collego il percorso del file;

- Code Block: indico il nome del foglio excel da utilizzare;

- Boolean: devo inserire un valore booleano True in modo che i numeri scritti in excel vengano convertiti in stringhe di testo in Dynamo (readAsStrings);


- Excel.ReadFromFile: Dynamo mi legge la mia tabella scritta su excel;


- List.RestOfItems: elimino la prima riga della tabella, ossia quella di intestazione (Numero, Nome, Disegnato da);


- List.Transpose: inverto le righe con le colonne;


- Number: la lista è suddivisa in sottocategorie, alle quali sono assegnati dei numeri (0, 1, 2) che vanno usati per scegliere quella sottocategoria/colonna;

- List.GetItemAtIndex: divido gli elementi delle colonne creando 3 diverse liste;


- Family Types: scelgo la famiglia del cartiglio che voglio utilizzare;

- Views: scelgo una vista, ad esempio quella del PT da inserire nella prima tavola;


- Sheet.ByNameNumberTitleBlockAndViews: (nodo plurale, views) genero le tavole;


- Code Block: aggiungo il parametro di chi ha disegnato le viste;

Element.SetParameterByName: aggiungo il parametro alle tavole create.

e2.PNG
e3.PNG

Dynamo​ è uno strumento potentissimo e come avete appena visto con un po' di esercizio si riesce a imparare.

Sin da piccolo ho sempre amato la matematica ed è molto figo trovare modi diversi per applicarla al mondo dell'architettura.

Spero che gli esempi appena descritti possano essere utili per chi ancora non si sia approcciato a Dynamo.


Ciao, al prossimo post.



Ti ringraziamo per aver letto il nostro post.

Mi raccomando. Seguici su:


facebook
youtube
vimeo
pinterest
instagram
foto

Matteo

Architetto aspirante BIM Manager.

Ha studiato Ingegneria Edile-Architettura all'Università di Pavia e si è specializzato in BIM Management al Politecnico di Milano.


Hashtag: #BIMRevolution #ByeByeAutocad

THE M. POINT


Se vi va, registratevi alla nostra NEWSLETTER

(tranquilli, niente spam :D)


© 2017 The M. Point. All rights reserved.

Create a website