venerdì 28 marzo 2008

eXTRactor

...per Evangelist Folgorati

Una delle funzionalità più utili di Revit è senz'altro la possibilità di estrarre, mediante gli abachi, molti dati riguardanti gli oggetti presenti nel progetto.
A seconda della categoria ci sono già dei dati (parametri) standard, o di sistema, i cui valori possono essere letti direttamente dall'abaco.
Per tutti gli altri si ricorre eventualmente a dei parametri condivisi.

Nelle famiglie più complesse ci può essere poi l'esigenza di estrarre anche dati supplementari relativi anche ad alcuni dei pezzi che compongono la famiglia.
Il modo più veloce è senz'altro quello creare questi componenti come famiglie a se stanti e di attivare l'opzione "condiviso" prima di caricarli (nidificarli) nella famiglia finale.

Non sempre questo è sufficiente però...
Ci sono dei dati, in particolare delle dimensioni, che dipendono dall'oggetto ospitante e quindi non determinabili a priori.
L'esempio classico è la larghezza del davanzale:
di solito la forma è parametrizzata legando gli aggetti anteriore e laterali del davanzale alla spalla dell'apertura, la lunghezza coincide con la larghezza della finestra (con l'aggiunta eventualmente degli aggetti laterali), lo spessore è implicito nell'estrusione usata o legato ad una quota che regola dei piani di riferimento, ma... ma la larghezza del davanzale dipende dallo spessore del muro in cui sarà inserito.
Questo spessore non è determinabile a priori in quanto la finestra potrà essere inserita in qualunque muro comunque definito dall'utente in modo arbitrario.

Si può tentare con un parametro di tipo condiviso...
-il primo problema che si incontra è legato ai "troppi vincoli" in quanto si rischia di quotare qualcosa che già è quotato;

-altro inghippo il fatto che questo parametro sarà visibile nella famiglia caricata nel progetto e quindi modificabile... con tutti i casini che potrebbero capitare in caso venga cambiato dall'utente ignaro...
Potrebbe anche essere agganciato alle facce del muro, tanto poi la larghezza la ricaviamo con un calcolo, ma si ripresenterebbero i problemi di cui sopra.

E ancora... l'abaco delle finestre non elenca i parametri del muro in cui sono inserite e, viceversa, quello dei muri non riporta se ci sono finestre... sono due mondi completamente staccati ed irraggiungibili uno dall'altro, almeno dai utenti finali senza ricorrere ad un programmatore che ci scriva un plug-in apposito.
Fattibile ma costoso...

Che fare?
Usare una nidificata di tipo condiviso che raccolga solo i dati necessari senza geometrie.
O direttamente mediante l'associazione dei suoi parametri con quelli della famiglia ospitante, o indirettamente agganciando le sue dimensioni trascinando i grip sulla misura da estrarre.

La famiglia è semplice da realizzare basta tracciare un piano di riferimento, mettere una quota che lo leghi agli assi, trasformare la quota in un parametro istanza. Eventualmente ripetere l'operazione per l'altra dimensione. Settare su attivo il parametro "condiviso" nelle impostazioni dei parametri e categorie.

L'unico problema è che una volta inserita sparisce... giusto, non abbiamo tracciato nessuna geometria. Quindi visto che comunque non ci serve per definire delle forme possiamo usare delle linee, magari invisibili, che ci permettano di evidenziarla e quindi selezionarla quando inserita.

Dopo aver caricato questa famiglia nella famiglia definitiva, non ci resta che trascinarla sui piani di riferimento, o sulle facce, da misurare e, mediante i grip, determinare quale saranno le dimensioni da monitorare. Ricordarsi di chiudere i lucchetti!!!


La famiglia ospitante l'eXTRactor viene caricata nel progetto ed inserita varie volte... ovviamente su host di sistema con dimensioni a piacere.
Come nel caso in esempio su tre tipi di muro diversi.
Si procede poi alla creazione degli abachi nella consueta maniera,
uno per le finestre:
ed uno per i davanzali:
I loro parametri riporteranno quelli che stanno leggendo in quel momento sulle entità che li ospitano. Pur essendo selezionabili (tasto Tab...) non saranno però modificabili in quanto inserite all'interno di un altra famiglia.
Il passaggio successivo sarà quello di rinominare opportunamente le intestazioni delle tabelle per dare corrispondenza al dato che volevamo elencare.


Dove sta la folgorazione?
Beh, che l'oggetto da nidificare può essere pianificato per essere usato in svariate occasioni.
Quindi aggiungendo dei campi, su cui poi poter filtrare opportunamente, lo stesso identico oggetto può essere usato più volte all'interno della stessa famiglia o in altre anche appartenenti a diverse categorie.

Ecco l'estrazione dei dati relativi ai davanzali. Molto BIM.

mercoledì 19 marzo 2008

Erker


Work in progress...

Erker di Villa Alpina.
1^ bozza

.