Dynamo
Primer for v2.0
Italiano
Italiano
  • Informazioni
  • Introduzione
    • Che cos'è Dynamo e come funziona?
    • Guida introduttiva, comunità e piattaforma di Dynamo
  • Installazione per Dynamo
  • Interfaccia utente
    • Area di lavoro
    • Libreria
  • Nodi e fili
  • Nodi e concetti essenziali
    • Indice dei nodi
    • Geometria per la progettazione computazionale
      • Panoramica sulla geometria
      • Vettore, piano e sistema di coordinate
      • Punti
      • Curve
      • Superfici
      • Solidi
      • Mesh
    • Elementi di base dei programmi
      • Dati
      • Matematica
      • Logica
      • Stringhe
      • Colore
    • Progettazione con elenchi
      • Che cos'è un elenco?
      • Utilizzo di elenchi
      • Elenchi di elenchi
      • Elenchi n-dimensionali
    • Dizionari in Dynamo
      • Che cos'è un dizionario?
      • Nodi Dictionary
      • Dizionari nei blocchi di codice
      • Casi di utilizzo di Revit
  • Pacchetti e nodi personalizzati
    • Nodi personalizzati
      • Introduzione ai nodi personalizzati
      • Creazione di un nodo personalizzato
      • Pubblicazione nella libreria
    • Pacchetti
      • Introduzione ai pacchetti
      • Case study di un pacchetto - Mesh Toolkit
      • Sviluppo di un pacchetto
      • Pubblicazione di un pacchetto
      • Importazione zero-touch
  • Dynamo per Revit
    • Correlazione con Revit
    • Selezione
    • Modifica
    • Creazione
    • Personalizzazione
    • Documentazione
  • Dynamo for Civil 3D
    • Connessione a Civil 3D
    • Per iniziare
    • Libreria di nodi
    • Esempi di workflow
      • Strade
        • Posizionamento di lampioni
      • Gestione catastale
        • Posizionamento dei servizi
      • Impianti di pubblica utilità
        • Ridenominazione di strutture
      • Ferrovia
        • Sagoma dello spazio libero
      • Rilievi
        • Gestione di gruppi di punti
    • Argomenti avanzati
      • Unione di oggetti
      • Python e Civil 3D
    • Dynamo Player
    • Pacchetti utili
    • Risorse
  • Dynamo in Forma Beta
    • Impostazione di Dynamo Player in Forma
    • Aggiunta e condivisione di grafici in Dynamo Player
    • Esecuzione di grafici in Dynamo Player
    • Differenze tra Dynamo compute service e Desktop Dynamo
  • Codifica in Dynamo
    • Blocchi di codice e DesignScript
      • Cos'è un blocco di codice?
      • Sintassi di DesignScript
      • Sintassi abbreviata
      • Funzioni
    • Geometria con DesignScript
      • Nozioni di base della geometria DesignScript
      • Primitive geometriche
      • Matematica vettoriale
      • Curve: punti interpolati e di controllo
      • Traslazione, rotazione e altre trasformazioni
      • Superfici: punti interpolati e di controllo, loft, rivoluzione
      • Parametrizzazione geometrica
      • Intersezione e taglio
      • Operazioni booleane geometriche
      • Generatori di punti di Python
    • Python
      • Nodi Python
      • Python e Revit
      • Impostazione del modello di Python personalizzato
    • Modifiche al linguaggio
  • Procedure ottimali
    • Strategie sui grafici
    • Strategie di scripting
    • Riferimento per lo scripting
    • Gestione del programma
    • Utilizzo efficiente di set di dati di grandi dimensioni in Dynamo
  • Esempi di workflow
    • Introduzione ai workflow
      • Vaso parametrico
      • Punti attrattore
    • Indice concettuale
  • Guida introduttiva per sviluppatori
    • Compilazione di Dynamo dalla sorgente
      • Compilazione di DynamoRevit dalla sorgente
      • Gestione e aggiornamento delle dipendenze in Dynamo
    • Sviluppo per Dynamo
      • Per iniziare
      • Case study zero-touch - Nodo griglia
      • Esecuzione di script Python in nodi zero-touch (C#)
      • Ulteriori informazioni sul concetto di zero-touch
      • Personalizzazione avanzata dei nodi di Dynamo
      • Utilizzo di tipi COM (interoperabilità) nei pacchetti di Dynamo
      • Case study NodeModel - Interfaccia utente personalizzata
      • Aggiornamento di pacchetti e librerie di Dynamo per Dynamo 2.x
      • Aggiornamento di pacchetti e librerie di Dynamo per Dynamo 3.x
      • Estensioni
      • Definizione dell'organizzazione di pacchetti personalizzati (Dynamo 2.0 e versioni successive)
      • Interfaccia della riga di comando di Dynamo
      • Integrazione per Dynamo
      • Sviluppo per Dynamo for Revit
      • Pubblicazione di un pacchetto
      • Creazione di un pacchetto da Visual Studio
      • Estensioni come pacchetti
    • Richieste pull
    • Aspettative di test
    • Esempi
  • Appendice
    • Domande frequenti
    • Programmazione visiva e Dynamo
    • Risorse
    • Note di rilascio
    • Pacchetti utili
    • File di esempio
    • Mappa di integrazione host
    • Download del file PDF
    • Tasti di scelta rapida di Dynamo
Powered by GitBook
On this page
  • Quali sono le opzioni disponibili?
  • Per Dynamo
  • In Dynamo
  • Quali sono i vantaggi/gli svantaggi di ciascuna opzione?
  • Informazioni sul controllo sulle modifiche all'API e delle versioni di Dynamo (1.x → 2.x)
  • Autorizzazione alla distribuzione di file binari in un pacchetto
  • Considerazioni sulle prestazioni dell'interfaccia utente di Dynamo
Edit on GitHub
Export as PDF
  1. Guida introduttiva per sviluppatori

Sviluppo per Dynamo

PreviousGestione e aggiornamento delle dipendenze in DynamoNextPer iniziare

Last updated 2 months ago

Indipendentemente dal livello di esperienza, la piattaforma Dynamo è progettata per consentire a tutti gli utenti di contribuire. Esistono diverse opzioni di sviluppo che si rivolgono a diversi livelli di abilità e competenze, ciascuno con i suoi punti di forza e di debolezza a seconda dell'obiettivo. Di seguito illustreremo le diverse opzioni e come scegliere una piuttosto che un'altra.

Tre ambienti di sviluppo: Visual Studio, l'editor Python Editor e la sintassi DesignScript di Code Block

Quali sono le opzioni disponibili?

Le opzioni di sviluppo per Dynamo si suddividono principalmente in due categorie: per Dynamo anziché in Dynamo. Le due categorie possono essere considerate come segue: "in" Dynamo implica che il contenuto creato con l'IDE Dynamo deve essere utilizzato in Dynamo e "per" Dynamo implica che devono essere utilizzati strumenti esterni per creare il contenuto da importare in Dynamo. Sebbene questa guida si concentri sullo sviluppo per Dynamo, le risorse per tutti i processi sono descritte qui di seguito.

Per Dynamo

Questi nodi consentono il massimo grado di personalizzazione. Molti pacchetti vengono creati con questo metodo ed è necessario per contribuire ai file di origine di Dynamo. Il processo di creazione sarà descritto in questa guida.

  • Nodi zero-touch

  • Nodi derivati da NodeModel

  • Estensioni

Per la discussione seguente, Visual Studio viene utilizzato come ambiente di sviluppo per i nodi zero-touch e NodeModel.

L'interfaccia di Visual Studio con un progetto che verrà sviluppato

In Dynamo

  • I Code Block espongono DesignScript nell'ambiente di programmazione visiva, consentendo workflow flessibili per gli script di testo e i nodi. Una funzione in un Code Block può essere chiamata da qualsiasi elemento dell'area di lavoro.

  • I nodi personalizzati sono contenitori per raccolte di nodi o anche interi grafici. Sono un modo efficace per raccogliere le routine utilizzate più di frequente e condividerle con la comunità.

  • I nodi Python sono un'interfaccia di scripting nell'area di lavoro di programmazione visiva, simile ai Code Block. Le librerie Autodesk.DesignScript utilizzano una notazione con punto simile a DesignScript.

Lo sviluppo nell'area di lavoro di Dynamo è un potente strumento per ottenere un feedback immediato.

Sviluppo nell'area di lavoro di Dynamo con il nodo Python

Quali sono i vantaggi/gli svantaggi di ciascuna opzione?

Le opzioni di sviluppo per Dynamo sono state progettate per soddisfare la complessità di un'esigenza di personalizzazione. Sia che si tratti di scrivere uno script ricorsivo in Python o di creare un'interfaccia utente del nodo completamente personalizzata, esistono opzioni per l'implementazione del codice che comportano solo lo stretto necessario per essere operativi.

Code Block, nodo Python e nodi personalizzati in Dynamo

Si tratta di opzioni semplici per la scrittura di codice nell'ambiente di programmazione visiva Dynamo. L'area di lavoro di programmazione visiva di Dynamo consente di accedere a Python, DesignScript e alla possibilità di contenere più nodi all'interno di un nodo personalizzato.

Con questi metodi è possibile:

  • Iniziare a scrivere Python o DesignScript quasi senza alcuna impostazione.

  • Importare le librerie di Python in Dynamo.

  • Condividere Code Block, nodi Python e nodi personalizzati con la comunità Dynamo come parte di un pacchetto.

Nodi zero-touch

Il termine zero-touch si riferisce ad un semplice metodo di puntamento e clic per l'importazione di librerie C#. Dynamo consentirà di leggere i metodi pubblici di un file .dll e di convertirli in nodi di Dynamo. È possibile utilizzare il metodo zero-touch per sviluppare nodi e pacchetti personalizzati.

Con questo metodo è possibile:

  • Scrivere metodi C# e utilizzare facilmente i metodi come nodi in Dynamo.

  • Condividere una libreria C# come nodi con la comunità Dynamo in un pacchetto.

Nodi derivati da NodeModel

Questi nodi sono un livello più basso nella struttura di Dynamo. Si basano sulla classe NodeModel e sono scritti in C#. Sebbene questo metodo offra la massima flessibilità e potenza, la maggior parte degli aspetti del nodo deve essere definita esplicitamente e le funzioni devono risiedere in un assieme separato.

Con questo metodo è possibile:

  • Creare un'interfaccia utente del nodo completamente personalizzabile con dispositivi di scorrimento, immagini, colori e così via (ad esempio, nodo ColorRange).

  • Accedere a ciò che accade nell'area di disegno di Dynamo e intervenire.

  • Personalizzare il collegamento.

  • Caricare elementi in Dynamo come pacchetto.

Informazioni sul controllo sulle modifiche all'API e delle versioni di Dynamo (1.x → 2.x)

Poiché Dynamo viene aggiornato regolarmente, potrebbero essere apportate modifiche a parte dell'API utilizzata da un pacchetto. Il monitoraggio di queste modifiche è importante per garantire che i pacchetti esistenti continuino a funzionare correttamente.

Autorizzazione alla distribuzione di file binari in un pacchetto

Tenere presente che i file .dll inclusi in un pacchetto vengono caricati nel gestore di pacchetti. Se l'autore del pacchetto non ha creato il file .dll, deve disporre dei diritti per condividerlo.

Se un pacchetto include file binari, al momento del download si deve richiedere conferma agli utenti che il pacchetto contiene file binari.

Considerazioni sulle prestazioni dell'interfaccia utente di Dynamo

Al momento della stesura di questo articolo, Dynamo utilizza principalmente WPF (Windows Presentation Foundation) per eseguire il rendering dell'interfaccia utente. WPF è un sistema complesso e potente basato su oggetti elemento XAML/binding. Poiché Dynamo ha un'interfaccia utente complessa, è facile generare arresti anomali dell'interfaccia utente, perdite di memoria o wrapping dell'esecuzione del grafico e degli aggiornamenti dell'interfaccia utente con modalità che compromettono le prestazioni.

La Guida introduttiva contiene una guida sull'.

Sebbene questi processi esistano nell'area di lavoro di programmazione visiva e siano relativamente semplici, sono tutte opzioni valide per personalizzare Dynamo. La Guida introduttiva li tratta ampiamente e fornisce suggerimenti e pratiche ottimali di scripting nel capitolo .

Scaricare un esempio di Code Block (fare clic con il pulsante destro del mouse e salvare con nome) o vedere una simulazione dettagliata nella .

Scaricare un esempio di nodo personalizzato (fare clic con il pulsante destro del mouse e salvare con nome) o vedere una simulazione dettagliata nella .

Scaricare un esempio di nodo Python (fare clic con il pulsante destro del mouse e salvare con nome) o vedere una simulazione dettagliata nella

Importare una libreria non necessariamente sviluppata per Dynamo e creare automaticamente una suite di nuovi nodi, come l' nella Guida introduttiva.

Le modifiche all'API vengono registrate nella . Vengono descritte le modifiche apportate a DynamoCore, alle librerie e alle aree di lavoro.

Un esempio di modifica significativa imminente è la transizione dal formato di file XML a JSON nella versione 2.0. I nodi derivati da NodeModel ora richiedono un , altrimenti non si apriranno in Dynamo 2.0.

La documentazione sull'API di Dynamo attualmente copre le funzionalità principali: .

Fare riferimento alla pagina Wiki che consente di evitare alcune insidie comuni quando si apportano modifiche al codice di Dynamo.

importazione di librerie zero-touch
Strategie di scripting
Guida introduttiva
Guida introduttiva
Guida introduttiva
pagina Wiki di Dynamo su GitHub
costruttore JSON
http://dynamods.github.io/DynamoAPI
Dynamo Performance Considerations
Tre ambienti di sviluppo
Interfaccia di Visual Studio
Sviluppo nell'area di lavoro di Dynamo con il nodo Python
Code Block, script Python e nodo personalizzato
Nodi zero-touch
Nodi derivati da NodeModel
Documento delle modifiche all'API di Dynamo
Documentazione sull'API
esempio AForge