In questa sezione, è possibile trovare risorse aggiuntive per approfondire ulteriormente le conoscenze su Dynamo. È stato inoltre aggiunto un indice di nodi importanti, una raccolta di pacchetti utili e un repository di file di esempio presenti in questa guida introduttiva. È possibile aggiungere elementi a questa sezione. Ricordarsi che Dynamo Primer è open source.
La progettazione spesso implica la definizione di relazioni visive, sistemiche o geometriche tra le parti di un progetto. Per la maggior parte delle volte, queste relazioni vengono sviluppate da workflow che consentono di passare dal concetto al risultato tramite regole. Forse senza saperlo, si lavora in modo algoritmico: definendo un insieme di azioni passo-passo che seguono una logica di base di input, elaborazione e output. La programmazione consente di continuare a lavorare in questo modo, ma formalizzando gli algoritmi.
Sebbene offra alcune potenti opportunità, il termine algoritmo può portare con sé alcune errate concezioni. Gli algoritmi possono generare cose impreviste, incontrollate o fantastiche, ma non sono magici. In realtà sono piuttosto semplici, di per sé. Verrà utilizzato un esempio tangibile come una gru origami. Si inizierà con un foglio di carta quadrato (input), si seguirà una serie di passaggi di piegatura (azioni di elaborazione) e si genererà una gru (output).
Quindi dov'è l'algoritmo? Si tratta di una serie di passaggi astratti, che possono essere rappresentati in due modi: dal punto di vista testuale o grafico.
Istruzioni testuali:
Iniziare con un foglio di carta quadrato, colorato su lato verso l'alto. Ripiegare a metà e aprire. Quindi, ripiegare a metà sull'altro lato.
Capovolgere il foglio sul lato bianco. Ripiegare il foglio a metà, piegare bene e aprire, quindi ripiegare nuovamente nell'altra direzione.
Utilizzando le pieghe create, portare i 3 angoli superiori del modello nell'angolo inferiore. Appiattire il modello.
Ripiegare i lembi triangolari superiori al centro e spiegare.
Ripiegare la parte superiore del modello verso il basso, piegare bene e spiegare.
Aprire il lembo più alto del modello, riportandolo verso l'alto e premendo contemporaneamente i lati del modello verso l'interno. Appiattire, piegando bene.
Capovolgere il modello e ripetere i passaggi 4-6 sull'altro lato.
Ripiegare i lembi superiori al centro.
Ripetere l'operazione sull'altro lato.
Ripiegare entrambe le "gambe" del modello, piegare molto bene, quindi spiegare.
Ripiegare le "gambe" rovesciandole all'interno lungo le pieghe appena create.
Ripiegare un lato rovesciandolo all'interno per creare una testa, quindi ripiegare le ali.
Ora è stata realizzata una gru.
Istruzioni grafiche:
L'utilizzo di uno di questi insiemi di istruzioni dovrebbe creare una gru e, se si è seguita la procedura, è stato applicato un algoritmo. L'unica differenza è il modo in cui si legge la formalizzazione di quell'insieme di istruzioni e che porta alla programmazione. La programmazione, spesso abbreviata da programmazione informatica, è l'atto di formalizzare l'elaborazione di una serie di azioni in un programma eseguibile. Se le istruzioni precedenti per creare una gru sono state convertite in un formato che il computer può leggere ed eseguire, si sta parlando di programmazione.
La chiave al primo ostacolo che si troverà nella programmazione è che occorre ricorrere a qualche forma di astrazione per comunicare in modo efficace con il computer. Questo prende la forma di un numero qualsiasi di linguaggi di programmazione, come JavaScript, Python o C. Se si può scrivere un insieme di istruzioni ripetibili, come per la gru origami, occorre solo convertirlo per il computer. Si è sulla buona strada per avere un computer in grado di creare una gru o persino una moltitudine di gru differenti, dove ciascuna di esse varia leggermente. Questo è il potere della programmazione: il computer eseguirà ripetutamente qualsiasi attività, o serie di attività, assegnata, senza ritardi e senza errori umani.
Programmazione visiva definita
Scaricare il file di esempio facendo clic sul collegamento seguente.
Un elenco completo di file di esempio è disponibile nell'Appendice.
Se ci fosse stato assegnato il compito di scrivere istruzioni per ripiegare una gru origami, come si potrebbe procedere? Utilizzando la grafica, il testo o una combinazione dei due metodi?
Se la risposta è la grafica, allora la programmazione visiva è sicuramente la soluzione ideale. Il processo è essenzialmente lo stesso per la programmazione e la programmazione visiva. Utilizzano la stessa struttura di formalizzazione; tuttavia, si definiscono le istruzioni e le relazioni del programma attraverso un'interfaccia utente grafica (o "visiva"). Anziché digitare il testo associato tramite sintassi, vengono collegati tra loro i nodi preconfezionati. Di seguito è riportato un confronto dello stesso algoritmo - "disegnare un cerchio attraverso un punto" - programmato con nodi e codice:
Programma visivo:
Programma testuale:
I risultati del nostro algoritmo:
La caratteristica visiva della programmazione in questo modo abbatte la barriera iniziale e di frequente parla con i progettisti. Dynamo rientra nel paradigma della programmazione visiva, ma, come si vedrà più avanti, è possibile comunque utilizzare anche la programmazione testuale nell'applicazione.
Di seguito è riportato un elenco di alcuni dei pacchetti più popolari nella comunità di Dynamo. Sviluppatori, aggiungeteli all'elenco! Tenere presente che Dynamo Primer è open source.
Questa Wiki serve per imparare a sviluppare l'interfaccia API di Dynamo, supportando le librerie e gli strumenti.
Questo blog è la raccolta di articoli più aggiornata del team di Dynamo, che discute di nuove funzionalità, workflow e tutto ciò che riguarda Dynamo.
I linguaggi di programmazione sono creati per esprimere idee, che in genere coinvolgono logica e calcolo. Oltre a questi obiettivi, è stato creato il linguaggio testuale di Dynamo (in precedenza DesignScript) per esprimere gli intenti progettuali. È generalmente riconosciuto che la progettazione computazionale è esplorativa e Dynamo tenta di supportare questa funzionalità: ci auguriamo che il linguaggio sia flessibile e veloce abbastanza da portare un progetto dall'idea iniziale, attraverso iterazioni di progetto, alla forma finale. Questo manuale è strutturato in modo da offrire ad un utente che non conosce la programmazione o la geometria architettonica piena esposizione ad una serie di argomenti in queste due discipline intersecanti.
Dynamo Primer è un progetto open source avviato da Matt Jezyk e dal team di sviluppo di Dynamo di Autodesk. La prima versione della guida introduttiva è stata sviluppata da Mode Lab. Per contribuire, creare una copia di repository tramite fork, aggiungere il contenuto e inviare una richiesta pull.
In questa pagina viene descritta la procedura di sviluppo di un nodo di Dynamo personalizzato in C# utilizzando l'interfaccia zero-touch. Nella maggior parte dei casi, le classi e i metodi statici C# possono essere importati senza modifica. Se la libreria deve chiamare solo funzioni e non costruire nuovi oggetti, questo obiettivo si può ottenere molto facilmente con i metodi statici. Quando Dynamo carica la DLL, verrà rimossa dallo spazio dei nomi delle classi e tutti i metodi statici verranno esposti come nodi.
Python è un linguaggio di programmazione interpretato, interattivo e orientato agli oggetti. Include moduli, eccezioni, digitazione dinamica, tipi di dati dinamici di altissimo livello e classi. Python combina una potenza straordinaria con una sintassi molto chiara. Ha interfacce a molte librerie e chiamate di sistema, nonché a diversi sistemi di finestre ed è espandibile in C o C++. È inoltre utilizzabile come linguaggio di estensione per le applicazioni che richiedono un'interfaccia programmabile. Infine, Python è portatile: può essere eseguito su molte varianti di Unix, su Mac e su Windows 2000 e versioni successive. Il manuale Beginner's Guide to Python contiene collegamenti ad altre esercitazioni introduttive e risorse per l'apprendimento di Python.
AForge.NET è un framework C# open source progettato per sviluppatori e ricercatori nei campi della visione artificiale e dell'intelligenza artificiale: elaborazione delle immagini, reti neurali, algoritmi genetici, logica fuzzy, apprendimento automatico, robotica, ecc.
MathWorld è una risorsa matematica in linea, assemblata da Eric W. Weisstein con l'assistenza di migliaia di collaboratori. Da quando il suo contenuto è apparso per la prima volta in linea nel 1995, MathWorld è diventato un nesso di informazioni matematiche sia nelle comunità matematiche che didattiche. Le sue voci sono ampiamente utilizzate nei giornali e nei libri che coprono tutti i livelli educativi.
Questi post riguardano principalmente la piattaforma Revit, con suggerimenti su come utilizzarla.
Questo blocco appunti tenta di rimediare ad alcune carenze delle risorse nell'apprendimento e nell'applicazione dell'API di Revit nel contesto di un workflow di progettazione.
RevitPythonShell aggiunge un interprete IronPython ad Autodesk Revit e Vasari. Questo progetto precede Dynamo ed è un ottimo riferimento per lo sviluppo di Python. Progetto RPS:
https://github.com/architecture-building-systems/revitpythonshell
Blog per sviluppatori:
Un catalogo affidabile di workflow dell'API di Revit, creato da uno dei principali esperti del BIM.
archi-lab è una raccolta di oltre 50 pacchetti personalizzati che estendono notevolmente la capacità di Dynamo di interagire con Revit. I nodi contenuti nel pacchetto archi-lab variano dalle operazioni di base sugli elenchi ai nodi di Analysis Visualization Framework avanzati per Revit. archi-lab è disponibile in Package Manager.
Bimorph Nodes è una raccolta versatile di potenti nodi di utilità. Le caratteristiche principali del pacchetto includono il rilevamento ultra-efficiente delle interferenze e i nodi di intersezione della geometria, i nodi di conversione delle curve di ImportInstance (CAD) e i collettori di elementi collegati che risolvono le limitazioni nell'API di Revit. Per informazioni sull'intera gamma di nodi disponibili, visitare il dizionario di Bimorph Nodes. Bimorph Nodes è disponibile in Package Manager.
Bumblebee è un plug-in di interoperabilità tra Excel e Dynamo che migliora in modo significativo la capacità di Dynamo di leggere e scrivere file Excel.
Clockwork è una raccolta di nodi personalizzati per l'ambiente di programmazione visiva Dynamo. Contiene molti nodi correlati a Revit, ma anche numerosi nodi per altri scopi quali la gestione degli elenchi, le operazioni matematiche, le operazioni di tipo stringa, le conversioni di unità, le operazioni geometriche (principalmente riquadri di delimitazione, mesh, piani, punti, superfici, UV e vettori) e la suddivisione in pannelli.
Data
Shapes è un pacchetto che ha lo scopo di estendere la funzionalità utente degli script Dynamo. Ha un'attenzione particolare all'aggiunta di maggiori funzionalità al Lettore Dynamo. Per ulteriori informazioni, visitare il sito Web https://data-shapes.net/. Si desidera creare fantastici workflow del Lettore Dynamo? Utilizzare questo pacchetto.
DynamoSAP è un'interfaccia parametrica per SAP2000, basata su Dynamo. Il progetto consente a progettisti e ingegneri di creare e analizzare in modo generativo i sistemi strutturali in SAP, utilizzando Dynamo per gestire il modello SAP. Il progetto prevede alcuni workflow comuni descritti nei file di esempio inclusi e offre un'ampia gamma di opportunità per l'automazione di attività tipiche in SAP.
Questa libreria estende le funzionalità di Dynamo/Revit consentendo agli utenti di spiegare la geometria di superficie e di polisuperficie. La libreria consente agli utenti di convertire prima le superfici in topologia tassellata planare, quindi di spiegarle utilizzando gli strumenti di protogeometria di Dynamo. Questo pacchetto include anche alcuni nodi sperimentali e alcuni file di esempio di base.
È possibile importare immagini vettoriali da Illustrator o dal Web utilizzando .svg. Ciò consente di importare disegni creati manualmente in Dynamo per operazioni parametriche.
Energy Analysis for Dynamo consente di eseguire la modellazione energetica parametrica e i workflow di analisi energetica dell'intero edificio in Dynamo 0.8. Energy Analysis for Dynamo consente all'utente di configurare il modello energetico da Autodesk Revit, di eseguire l'invio a Green Building Studio per l'analisi energetica DOE2 e di analizzare i risultati restituiti dall'analisi. Il pacchetto è stato sviluppato dallo studio CORE di Thornton Tomasetti.
Firefly è una raccolta di nodi che consente a Dynamo di parlare con i dispositivi di input/output, come il micro controller Arduino. Poiché il flusso di dati avviene "in diretta", Firefly offre molte opportunità per la prototipazione interattiva tra il mondo digitale e quello fisico attraverso Webcam, cellulari, controller di gioco, sensori e altro ancora.
Genius Loci è una raccolta di nodi per Dynamo. È costituita da nodi utili fruibili dagli utenti di Revit. Installare il pacchetto per esplorare alcune funzionalità, ad esempio interagire facilmente con i file collegati e i documenti di Revit.
Mantis Shrimp è un progetto di interoperabilità che consente di importare facilmente la geometria di Grasshopper e/o Rhino in Dynamo.
Dynamo Mesh Toolkit fornisce molti strumenti utili per l'utilizzo della geometria della mesh. Le funzionalità di questo pacchetto includono la possibilità di importare mesh da formati di file esterni, generare mesh da oggetti della geometria di Dynamo preesistenti e generare manualmente mesh tramite vertici e informazioni di connettività. Inoltre, questo toolkit include strumenti per la modifica e la correzione della geometria della mesh.
🧐 MONOCLE
Monocle è un'estensione della vista per Dynamo 2.0.x. Monocle contiene un set di strumenti utili per l'identificazione dei pacchetti, la correzione dei grafici e molto altro. Monocle intende aggiungere funzionalità all'interfaccia utente di Dynamo in modo fluido che fa pensare: "È integrato in Dynamo?". Monocle è disponibile in Package Manager.
Optimo fornisce agli utenti di Dynamo la possibilità di ottimizzare i problemi di progettazione definiti dall'utente utilizzando vari algoritmi evolutivi. Gli utenti possono definire l'obiettivo o la serie di obiettivi del problema, nonché specifiche funzioni di adattamento.
La libreria di nodi di Rhynamo consente agli utenti di leggere e scrivere file Rhino 3DM dall'interno di Dynamo. Rhynamo converte la geometria di Rhino in geometria di Dynamo utilizzabile mediante la libreria OpenNURBS di McNeel, consentendo nuovi workflow in grado di scambiare la geometria e i dati in modo fluido tra Rhino e Revit. Questo pacchetto contiene anche alcuni nodi sperimentali che consentono l'accesso "in diretta" alla riga di comando di Rhino.
Rhythm è un insieme di nodi utili per aiutare a procedere con il progetto di Revit mantenendo un buon ritmo con Dynamo. Fondamentalmente, presenta funzioni abbastanza buone. Rhythm è open source e principalmente integrato in C# e aggiunge nodi di Revit, nodi principali e un'estensione della vista a Dynamo. Rhythm è disponibile in Package Manager.
L'obiettivo principale dei nodi Spring è migliorare l'interazione di Dynamo con Revit. L'obiettivo più ampio è esplorare qualsiasi mezzo che possa contribuire ad accelerare i workflow incentrati sul BIM. Molti nodi utilizzano IronPython o DesignScript e possono essere un buon punto di partenza per apprendere la sintassi specifica e i punti più fini di entrambi. I nodi Spring sono disponibili in Package Manager.
ARCHI-LAB
BIMORPH NODES
BUMBLEBEE FOR DYNAMO
CLOCKWORK FOR DYNAMO
DATA|SHAPES
DYNAMO SAP
DYNAMO UNFOLD
DYNASTRATOR
ENERGY ANALYSIS FOR DYNAMO
FIREFLY FOR DYNAMO
GENIUS LOCI
MANTIS SHRIMP
MESH TOOLKIT
OPTIMO
RHYNAMO
RHYTHM
Nodi Spring