Inviato da Antonio Vellucci il Sab, 11/10/2014 - 00:57
Immaginiamo una superficie complessa, come possiamo realizzarla, gestirla e soprattutto tradurla in un oggetto reale? Le strade sono le più diverse ma sicuramente quella di utilizzare una modellazione parametrica è la più utile e interessante.Al di là della loro bellezza estetica o meno, è interessante studiare le potenzialità di un metodo che porta a capire e gestire un “nuovo” modo di fare. Proviamo quindi a discretizzare un oggetto per sezioni, il cui sviluppo genera un volume, e quindi con la progettazione di una sezione i cui parametri, variando, porteranno ad una forma più o meno complessa.
![](https://lh4.googleusercontent.com/5wr21x0MlR7yiQkE4eJgYz_zwqw2PLCal5k0mJCZEBQPsXK3AQ7bxq_ukA58ugr4hy9_ntHHHQQ5NHvPahEP96Jq0dS0Ii4bzwp4Fb-GEscv_GsmyQ4zuoPF6OSkfqZYLw)
La sezione progettata è data da due ellissi concentrice i cui assi sono definiti da parametri di istanza legati tra loro mediante formula. Pensando ad uno sviluppo in verticale di questa sezione ho inserito due fori, vincolati parametricamente anche questi agli assi, per i quali far passare delle asticelle che terrano unite le varie sezioni.
![](https://lh6.googleusercontent.com/Gp0sJxAvOMFyVJ7-shkC1xXqWyCESwl6d6rU64EoaKdNLI5_X78pAnu7WJPuX5Kww04TkSRfafISiFjnaxUHFgJ-3d5HGUaQu0a_VKOaGgiBRvwkoa4VnH0ECdmmTrdYmw)
Progettatta una sezione tipo, possiamo importare questo componente in un progetto dove ci occupiamo dello sviluppo in un oggetto più complesso generato da questa sezione. Quindi avviamo Dynamo e giochiamo. Sappiamo che lo sviluppo della sezione è prevalentemente verticale, quindi la cosa più facile da fare per iniziare è quella di generare una serie di punti lungo l'asse z, ad ognuno dei quali associare una sezione.
Da questi nodi vediamo che c'è un generatore di coordinate cartesiane, dal nome Point By Coordinates, la cui x e y è nulla mentre la z è gestita da una variabile x, quindi abbiamo un andamento lineare dei punti lungo quest'asse. Ma chi mi genera i valori che può assumere questa variabile?
![](https://lh4.googleusercontent.com/tM5Y1pYSRlnO_LLbU_kkx3hdixXTY1uEzd_FLM2HAzb1Xli6ZUhaFP-eRA63NCCLa8AaXxRhzQqGSynlvFo3u028kCSw3HjpOfwRWHEKVuxGGUHjayhdeRpDOPJjSF325w)
Per questo ci avvaliamo del nodo Number Range; si tratta di uno dei tanti modi di generare una lista di valori, in particolare questo richiede un valore dal quale cominciare e un altro sul quale terminare l'intervallo e inoltre un valore per il loro passo. Una considerazione molto importante da fare, visto che uno degli scopi è quello di produrre l'oggetto, è quella sulla gestione delle unità di misura di Dynamo. Ancora non mi è chiaro come sia il suo comportamento, ma confrontando i valori inseriti in Dynamo con le misurazioni in Revit degli oggetti, ho constatato che i valori sono espressi in metri, di conseguenza ho inserito un nodo Formula come "filtro" dei valore in modo che prima di generare la sequenza fossero divisi per 100, ottenendo così dei valori espressi in millimetri, più gestibili per lo scopo prefissato.
Associamio, quindi, a queste coordinate la sezione. Con Family Types possiamo selezionare tutte le famiglie presenti e collegarle al nodo Family Instance by Point il quale non fa altro che generare un’instanza, governata dai punti coordinati generati in precedenza.
![](https://lh4.googleusercontent.com/q97qEdshvUH32APIfogUXlviZN164AtHr8j_4ttYuQ2aPjFgrpgzkV9u8ZV58hsazveJLczdGx7yN5o1QwbVUcMMhkZMoJ71einKMVmwc2yqiSI7AAkWf7gwDeXjU9gErA)
![](https://lh5.googleusercontent.com/eMfblATMJYzT_ZI5FgJdw9tACiv36aVThGvSquKH23TJ7oYpqgGZwNLFFSwusA5jPEUzIklMkbH3MAHqt4vPsoBlvrWpSitQI68rO_D0S3UEWeYYetIqfV_3XFHfJSASEg)
Anche qui una considerazione: il software non posiziona gli elementi dell’instanza a caso, ma utilizza l’origine degli assi della famiglia come punto da associare ai punti coordinati generati con Dynamo.
Quindi il risultato di queste prime operazioni è una pila verticale di dischi.
![](https://lh4.googleusercontent.com/1EGcK57vdy1PdC4DpiL7yC6SwMb-MxMTmBD8D1eBkgWRFhjdXXzjabBbJ3AzTjrhh97JAEYOOVVoLtUGlBQnmr1o0mAN_Vf4x0jQ-WSeeDiHYd04IqMDrnqTuKaMQoQxkA)
A questo punto abbiamo generato un primo oggetto, approssimabile ad un volume, che rispetto ad altri metodi di modellazione sappiamo già controllare, infatti variando i parametri dei nodi come la distanza tra le coordinate dell’asse z e la loro FUNZIONE, possiamo ottenere differenti risultati.
Ora facciamo variare i parametri della sezione e vediamo che succede. Prima cosa dobbiamo richiamare i parametri con Dynamo, ossia prendiamo il nodo Get Family Parameter (per comodità rinominato)e lo colleghiamo al nodo Element set parameter by name che si occuperà di far variare i valori del parametro che selezioniamo; a questo punto con Select Model Element selezioniamo un elemento e vedremo comparire l'ID dell'oggetto e sui parametri.
![](https://lh5.googleusercontent.com/1yUQ0pJ06X26SlWXDUCU1kt2OhpBwP89c16xJUycMkzI-xV8VdZCjg6JuUgw6rW91RIO_8BEs1294cb9qNaRbYkn1dXrqwC1PD9nF-R0ntsmDMLaCUDzhZ04QsoWScSFmw)
Mettiamo una serie di valori che assumerà il parametro all'interno dell'instanza e per fare ciò possiamo agire come all'inizio con un Number Sequence-Range e filtrare la serie con Formula, come ho fatto per il secondo parametro, oppure utilizziamo un Code Block con il quale definire un intervallo di numeri: scriviamo un intervallo come nell’immagine il primo valore, l’ultimo valore e la quantità di numeri; per quest’ultimo ho deciso di associarlo ad una variabile che viene gestita da una formula che individua la quantità dei dischi semplicemente dividendo l’altezza dell’instanza per la distanza tra i dischi; il più 1 serve a considerare sempre anche l’ultimo disco della serie.
![](https://lh6.googleusercontent.com/aXL_Q-M1UtgvVhIWkVdkK6NF4NJuNkrpfG6H9wCjGhQ1aIzGodrlH7p44V4PKa383dHj7ISPJSgU1MUqbig4r6aOWXQIjLySZc0MBSF7tktl7LGkh-_BgDUX_mtWN5QubA)
![](https://lh5.googleusercontent.com/HIC3SHlOIYDCfFm7gnmxq71fIAEsG6ICP094JdLCt6LJyt78H575hdonRkeMxM6QEgZNbEIO5hF3A58_xWv6jXIYnRZD4QFIwP9FcM-ZCx9Wuc3YumSyV9Q7evytQ_9P1w)