La famiglia adaptive di pannello con rotazione sinusoidale che avevo creato presentava due difetti: il primo era che il posizionamento di ognuno dei componenti andava fatto a mano, perchè il comando "repeat" non funzionava visto che applicava il parametro di istanza a tutte le copie dell'istanza fatte dal "repeat" (senza applicare la variazione sinusoidale) e il secondo era che una volta inseriti uno ad uno i pannelli, andava modificato loro il numero che li caratterizzava e che gli faceva attuare la variazione sinusoidale.
Per ovviare a questi difetti ho pensato di creare una famiglia basata su linea che sfruttasse la distanza dal punto di applicazione come componente numerica che definiva la variabile della rotazione sinusoidale, evitando quindi di dover andare a rinominare tutte le istanze e di posizionare ogni componente a mano (dandogli un vincolo di ripetizione periodico).
Tuttavia per sua natura questa famiglia presenta il difetto che non è adattativa, quindi applicabile solo ad un montaggio verticale di questi pannelli, non applicabile quindi al modello della Camera Obscura.
Sono partito quindi definendo la geometria solida del pannello direttamente nella famiglia basata su linea ed ho applicato un parametro di tipo angolo di istanza
Ho creato un parametro-istanza della distanza del primo elemento dal punto di applicazione della famiglia basata su linea
Tuttavia quando provavo a mettere in relazione la distanza con l'angolo non mi lasciava continuare perchè le misure erano chiaramente disomogenee.
Anche riuscendo a risolvere geometricamente questo problema rimaneva il fatto che la famiglia basata su linea presenta dei vincoli molto restrittivi quando si cerca di mettere in relazione con delle formule qualcosa con la linea di riferimento, quindi non mi avrebbe comunque fatto agire in quella direzione. Non trovando una risposta a questa problematica ho pensato di cambiare il tipo di variazione che mi interessava adattandola ad un parametro che fosse più consono al tipo di famiglia nel quale mi stavo muovendo: ho pensato che la variazione dei pannelli potesse essere qualcosa del genere..
In questo caso la variazione dipende dalla distanza verticale del pannello dalla linea di base in funzione della sua distanza, quindi un modo sicuro per riuscire a risolvere il problema, con un'altra forma!
Ho ricreato il pannello e gli ho impostato due parametri: la distanza del lato basso dalla linea base e la distanza del pannello dal punto di applicazione della linea base
Con l'intento di avere delle copie del mio oggetto sulla linea base ho selezionato il pannello, cliccato il comando "array" e stabilito la distanza fra i pannelli
Una volta decisa la distanza Revit chiede il numero di ripetizioni che chiediamo, ho impostato 11 ripetizioni e il programma mi ha copiato il pannello 11 volte della distanza precedentemente impostata
A questo punto ho impostato al parametro di "larghezza pannello" che corrisponde alla distanza della base inferiore della massa dalla linea di base, la mia formula di variazione sinusoidale. Ho poi creato un parametro "num elementi" cliccando l'istanza di ripetizione di "array" e cliccando su "aggiungi parametro" per variarne velocemente il numero e poterlo sfruttare nelle formule. Ho infine creato un parametro di vincolo ("max spaziatura") che mi definisse la massima spaziatura da assegnare ai pannelli ed ho messo in relazione il numero di pannelli con la lunghezza della linea e quindi con la massima spaziatura, per far sì che una volta allungata la linea aumentassero i pannelli, cosa che non sarebbe accaduta se io non lo avessi impostato (i pannelli si sarebbero semplicemente distanziati sempre più con l'aumentare della lunghezza della linea).
In questo modo variando la dimensione della linea aumenta il numero dei pannelli, con una spaziatura massima che contengo grazie al parametro di vincolo.
Tuttavia, una volta aumentato il numero di campioni, posso vedere che la variazione sinusoidale non è stata applicata dalla famiglia, nonostante esista una variazione proporzionale all'aumento della distanza dal punto di applicazione. La natura di questo evento mi sfugge, tuttavia penso che sia dovuta al fatto che la variazione è applicata ad una serie di copie di un oggetto base nel quale era prevista questa variazione. Non posso purtroppo prescindere dalla caratteristica di "array" che è il solo modo per aumentare il numero di elementi con l'aumentare della lunghezza della linea di base, visto che si tratta della potenzialità più interessante della famiglia basata su linea, quindi ritengo fallito questo primo tentativo.
Se qualcuno è in grado di darmi una mano nella soluzione di questo problema gli sarei molto grato ma in caso contrario penso di ritornare a lavorare sulle famiglie adattative in modo da eliminare uno dei due difetti della famiglia di base della consegna scorsa, per poi dedicarmi alla progettazione del montaggio e costruzione di questi componenti.
Commenti
misure disomogenee
Ciao Matteo, volevo dirti che in una consegna anche io mi sono trovato a dover competere con le misure disomogenee. Non so se può esserti utile, però ho risolto moltiplicando per "1 rad" (nel mio caso mancava la misura di un angolo)... forse se tu dividessi per 1 m l'argomento del seno, revit potrebbe passartelo =)
Grazie!
Grazie Marco! Sicuramente in quel modo risolverei il problema delle misure, ma come faccio vedere dopo nel post il problema vero è il come lui applica l'incremento utilizzando l'array, lo fa in modo strano, senza applicare la sinusoide che gli metto. Per questo in ogni caso anche se funzionasse la formula che tu mi hai consigliato non funzionerebbe complessivamente la variazione della famiglia basata su linea. Sarà sicuramente utile per altre situazioni, grazie ancora!
Matteo Persanti