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
  • Utilizzo di elenchi
  • Query
  • Azione
  • Esercizio
  • Operazioni sugli elenchi
  • List.Count
  • List.GetItemAtIndex
  • List.Reverse
  • List.ShiftIndices
  • List.FilterByBooleanMask
Edit on GitHub
Export as PDF
  1. Nodi e concetti essenziali
  2. Progettazione con elenchi

Utilizzo di elenchi

PreviousChe cos'è un elenco?NextElenchi di elenchi

Last updated 1 month ago

Utilizzo di elenchi

Ora che è stato definito un elenco, si può parlare delle operazioni eseguibili su di esso. Si immagini un elenco come un mazzo di carte da gioco. Un mazzo è l'elenco e ogni carta da gioco rappresenta una voce.

Query

Quali query è possibile eseguire dall'elenco? Consente di accedere alle proprietà esistenti.

  • Numero di carte nel mazzo? 52.

  • Numero di semi? 4.

  • Materiale? Carta.

  • Lunghezza? 3,5" o 89 mm.

  • Larghezza? 2,5" o 64 mm.

Azione

Quali azioni è possibile eseguire nell'elenco? In questo modo l'elenco cambia in base ad una determinata operazione.

  • È possibile mischiare il mazzo.

  • È possibile ordinare il mazzo in base al valore.

  • È possibile ordinare il mazzo in base al seme.

  • È possibile dividere il mazzo.

  • È possibile spartire il mazzo con singole mani.

  • È possibile selezionare una carta specifica nel mazzo.

Tutte le operazioni elencate sopra hanno nodi di Dynamo analoghi per l'utilizzo di elenchi di dati generici. Nelle lezioni riportate di seguito saranno illustrate alcune delle operazioni fondamentali che è possibile eseguire sugli elenchi.

Esercizio

Operazioni sugli elenchi

Scaricare il file di esempio facendo clic sul collegamento seguente.

Un elenco completo di file di esempio è disponibile nell'Appendice.

L'immagine seguente è il grafico di base che si sta disegnando tra due cerchi per rappresentare le operazioni di base con gli elenchi. Verrà illustrato come gestire i dati all'interno di un elenco e verranno mostrati i risultati visivi attraverso le azioni con gli elenchi riportate di seguito.

  1. Iniziare con un Code Block con un valore di 500;.

  2. Collegarlo all'input x di un nodo Point.ByCoordinates.

  3. Collegare il nodo del passaggio precedente all'input origin di un nodo Plane.ByOriginNormal.

  4. Utilizzando un nodo Circle.ByPlaneRadius, collegare il nodo del passaggio precedente all'input plane.

  5. Utilizzando Code Block, designare un valore di 50; per radius. Questo è il primo cerchio che verrà creato.

  6. Con un nodo Geometry.Translate, spostare il cerchio verso l'alto di 100 unità nella direzione Z.

  7. Con un nodo Code Block, definire un intervallo di dieci numeri compreso tra 0 e 1 con questa riga di codice: 0..1..#10;.

  8. Collegare il Code Block del passaggio precedente all'input param di due nodi Curve.PointAtParameter. Collegare Circle.ByPlaneRadius all'input curve del nodo superiore e Geometry.Translate all'input curve del nodo sottostante.

  9. Utilizzando Line.ByStartPointEndPoint, collegare i due nodi Curve.PointAtParameter.

List.Count

Scaricare il file di esempio facendo clic sul collegamento seguente.

Un elenco completo di file di esempio è disponibile nell'Appendice.

Il nodo List.Count è semplice: calcola il numero di valori in un elenco e restituisce tale numero. Questo nodo si diversifica sempre di più quando si utilizzano elenchi di elenchi, come dimostreremo nelle sezioni successive.

  1. Il nodo List.Count**** restituisce il numero di linee nel nodo Line.ByStartPointEndPoint. In questo caso, il valore è 10, che corrisponde al numero di punti creati dal nodo Code Block originale.

List.GetItemAtIndex

Scaricare il file di esempio facendo clic sul collegamento seguente.

Un elenco completo di file di esempio è disponibile nell'Appendice.

List.GetItemAtIndex è un modo fondamentale per eseguire una query su una voce dell'elenco.

  1. Innanzitutto, fare clic con il pulsante destro del mouse sul nodo Line.ByStartPointEndPoint per disattivare la relativa anteprima.

  2. Utilizzando il nodo List.GetItemAtIndex, selezionare l'indice "0" o la prima voce dell'elenco di linee.

Modificare il valore del dispositivo di scorrimento compreso tra 0 e 9 per selezionare un elemento diverso utilizzando List.GetItemAtIndex.

List.Reverse

Scaricare il file di esempio facendo clic sul collegamento seguente.

Un elenco completo di file di esempio è disponibile nell'Appendice.

List.Reverse inverte l'ordine di tutte le voci di un elenco.

  1. Per visualizzare correttamente l'elenco invertito di linee, creare più linee modificando Code Block in 0..1..#50;.

  2. Duplicare il nodo Line.ByStartPointEndPoint, inserire un nodo List.Reverse tra Curve.PointAtParameter e il secondo Line.ByStartPointEndPoint.

  3. Utilizzare i nodi Watch 3D per visualizzare in anteprima due risultati diversi. Il primo mostra il risultato senza un elenco invertito. Le linee si collegano verticalmente ai punti adiacenti. L'elenco invertito, tuttavia, collegherà tutti i punti all'ordine opposto nell'altro elenco.

List.ShiftIndices

Scaricare il file di esempio facendo clic sul collegamento seguente.

Un elenco completo di file di esempio è disponibile nell'Appendice.

List.ShiftIndices è un buono strumento per creare torsioni o modelli elicoidali o qualsiasi altra manipolazione di dati simile. Questo nodo sposta le voci di un elenco in base ad un determinato numero di indici.

  1. Nello stesso processo dell'elenco inverso, inserire List.ShiftIndices in Curve.PointAtParameter e Line.ByStartPointEndPoint.

  2. Utilizzando un Code Block, è stato designato un valore di "1" per spostare l'elenco in base ad un indice.

  3. Notare che la modifica è lieve, ma tutte le linee nel nodo Watch 3D inferiore sono state spostate in base ad un indice quando vengono collegate all'altro gruppo di punti.

Modificando Code Block in un valore superiore, ad esempio "30", si noterà una differenza significativa nelle linee diagonali. In questo caso, lo spostamento funziona come il diaframma di una fotocamera, creando una torsione nella forma cilindrica originale.

List.FilterByBooleanMask

Scaricare il file di esempio facendo clic sul collegamento seguente.

Un elenco completo di file di esempio è disponibile nell'Appendice.

List.FilterByBooleanMask rimuoverà alcune voci in base ad un elenco di valori booleani o valori che riportano "true" o "false".

Per creare un elenco di valori che riportano "true" o "false", è necessario un po' più di lavoro.

  1. Utilizzando un Code Block, definire un'espressione con la sintassi: 0..List.Count(list);. Collegare il nodo Curve.PointAtParameter all'input list. Si esaminerà in maniera dettagliata questa configurazione nel capitolo sul blocco di codice, ma in questo caso la riga di codice fornisce un elenco che rappresenta ogni indice del nodo Curve.PointAtParameter.

  2. Utilizzando un nodo %** (modulo)**, collegare l'output di Code Block all'input x e un valore di 4 all'input y. Questo fornirà il resto quando si divide l'elenco di indici per 4. % (modulo) è un nodo molto utile per la creazione di modelli. Tutti i valori verranno letti come possibili resti di 4: 0, 1, 2, 3.

  3. Dal nodo %** (modulo)**, si sa che un valore di 0 indica che l'indice è divisibile per 4 (0, 4, 8 e così via). Utilizzando un nodo = =, è possibile verificare la divisibilità provando con un valore di "0".

  4. Il nodo Watch mostra solo questo: è presente un modello true/false che riporta: true, false, false, false....

  5. Utilizzando questo modello true/false, collegarlo all'input mask di due nodi List.FilterByBooleanMask.

  6. Collegare il nodo Curve.PointAtParameter ad ogni input list per List.FilterByBooleanMask.

  7. L'output di Filter.ByBooleanMask riporta "in" e "out". "In" rappresenta i valori che hanno un valore mask di "true", mentre "out" rappresenta i valori che hanno un valore di "false". Collegando gli output "in" agli input startPoint ed endPoint di un nodo Line.ByStartPointEndPoint, è stato creato un elenco filtrato di linee.

  8. Il nodo Watch 3D mostra che le linee sono minori dei punti. È stato selezionato solo il 25% dei nodi filtrando solo i valori true.

Foto di

Christian Gidlöf
7KB
List-Operations.dyn
8KB
List-Count.dyn
8KB
List-GetItemAtIndex.dyn
8KB
List-Reverse.dyn
8KB
List-ShiftIndices.dyn
11KB
List-FilterByBooleanMask.dyn
carte
Count
Esercizio
Esercizio
Esercizio
Esercizio