Avete presente il momento in cui aprite il vostro modello Archicad e c’è qualcosa che non torna? Si visualizzano elementi con superfici a scacchi neri e viola, si fatica a comprendere quale sia l’Attributo corretto da scegliere, oppure si visualizzano elementi con un aspetto grafico differente.
Gli Attributi rappresentano una delle funzioni principali di Archicad. Senza, sarebbe impossibile creare il nostro progetto e il relativo modello informativo. Non a caso, nel processo di sviluppo di un template Archicad, gli Attributi sono le prime funzioni da dover curare. Proprio per questo motivo è fondamentale conoscere alcuni importanti aspetti che permettono di gestire e coordinare le varie tipologie di Attributi. Specialmente quando, all’interno dello studio, c'è l’abitudine di scomporre il modello in più sotto-modelli, per unirli poi in un modello federato disciplinare. Su questo tema io e l’arch. Matteo Di Filippo abbiamo speso qualche parola nel corso di un webinar dal titolo Model Breakdown: organizzazione e gestione del progetto in sotto-modelli BIM.
Prima di addentrarci in un’analisi approfondita è doveroso definire cosa sono gli Attributi e quali sono le loro differenti tipologie presenti in Archicad.
Gli Attributi sono gruppi definiti di impostazioni disponibili per il progetto. Per fare un esempio pensiamo alle visualizzazioni degli elementi che compongono il modello nelle varie fasi progettuali. In alcune di queste, infatti, sarà necessario “accendere/spegnere” determinati elementi relativi alle richieste informative che dovranno essere soddisfatte per la milestone di progetto. È il caso dei Lucidi e delle Combinazioni di Lucidi, che possono essere predefinite a seconda della fase progettuale o per altri obiettivi, come l’esportazione di un modello in formato IFC.
Quali sono, invece, gli Attributi presenti all’interno di Archicad? Di seguito elenco tutte le tipologie, in modo da avere una visione d’insieme sul tema, ed evidenzio le associazioni fra i vari Attributi:
Nulla di nuovo, o quasi, per chi utilizza gli Attributi “al di fuori” del template standard di Archicad. Molto spesso, però, capita di voler importare un particolare Attributo da un progetto all’altro o nel proprio template. Ecco che entra in gioco una delle funzioni più importanti per quanto riguarda la gestione di un modello informativo in Archicad: il Gestore Attributi. Questa funzione ha lo scopo di aiutare il progettista o la figura BIM di riferimento in tre aspetti principali:
Nello specifico la finestra del Gestore Attributi è composta dalle seguenti sezioni:
Soffermiamoci per un momento su una nozione che molto probabilmente pochi utilizzatori di Archicad conoscono. In entrambi le sezioni di elenco, sia del progetto corrente che dell’elenco temporaneo, è possibile notare un numero associato alla sinistra di ciascun Attributo. Quel numero, che non andrebbe mai ignorato nella gestione di un progetto BIM in Archicad, viene chiamato numero indice, e consente di correlare il singolo Attributo con il singolo componente modellato.
Cosa significa? Ad esempio, che l’Attributo Materiale da Costruzione “Mattone” viene associato ad un elemento Muro non tramite la sua denominazione, ma attraverso il suo numero indice pari a 1. In una rappresentazione astratta potremmo immaginare un numero indice come un ponte fra Attributo ed elemento. Con questa estremizzazione potete capire come possano sussistere differenti problematiche a seconda della gestione del numero indice:
Accade quando un Attributo viene associato a un elemento e in un momento futuro del progetto quell’Attributo con quel determinato numero indice viene eliminato e non sostituito nel progetto. Ad esempio, abbiamo utilizzato l’Attributo “Mattone” con numero indice 1 per poi eliminarlo successivamente. In questo caso Archicad non riuscirà a trovare il numero indice e di conseguenza il “Mattone” da associare.
In questo caso esistono nello stesso progetto Attributi con la medesima nomenclatura e caratteristiche. Questa problematica avviene quando si importano Attributi da un file a un altro senza tener conto del numero indice. Ad esempio, importando nuovamente l’Attributo “Mattone” con indice 1, Archicad andrà a creare un nuovo Attributo denominato “Mattone (1)” e con numero indice pari al primo numero indice disponibile in elenco.
Si verifica quando in due modelli esistono Attributi dello stesso numero indice, ma con denominazione e caratteristiche differenti. Questo avviene principalmente quando si utilizzano sotto-modelli da coordinare in un unico modello federato. Ad esempio, nel file di progetto 1 è presente l’Attributo “Mattone” con numero indice 1 e nel file di progetto 2 è presente l’Attributo “Calcestruzzo” con numero indice 1.
Utilizzando la funzione dei moduli collegati nel file di progetto 3, rappresentante il modello federato architettonico, non è detto che Archicad riesca in automatico ad associare correttamente l’Attributo ai singoli elementi. Potrebbe capitare, ad esempio, che l’elemento a cui era associato il “Mattone” venga visualizzato con il “Calcestruzzo” o viceversa. In questo caso uno dei due Attributi cambierà numero indice al primo disponibile in elenco. La modifica del numero indice di uno dei due Attributi dipenderà da quale sarà il primo file di progetto aggiornato all’interno del modello federato.
Oltre i vari problemi tecnici è possibile, inoltre, insorgere in tutta un’altra serie di difficoltà di processo, come perdite di tempo nel coordinamento degli Attributi per ottenere nuovamente una struttura gerarchica coerente, o confusione da parte dei progettisti sull’utilizzo di determinati Attributi piuttosto che di altri.
Il mio studio per gli Attributi e del loro processo di coordinamento e gestione inizia verso la fine del 2018, quando inizio a collaborare come BIM Coordinator per lo studio internazionale di architettura, interior design e product design Matteo Thun & Partners con sede a Milano e Monaco di Baviera. Potete capire quale fosse la mia responsabilità in riferimento al coordinamento dei file di progetto, specialmente nel caso in cui si scomponesse il modello in più sotto-modelli (una pratica abbastanza all’ordine del giorno vista la dimensione progettuale e costruttiva della maggior parte delle architetture dello studio).
A quel tempo si usava Archicad 22 e non esisteva ancora la funzione di Reindicizzazione degli Attributi, che consente di modificare il numero indice all’interno del Gestore Attributi. Col senno di poi, probabilmente nemmeno questa funzione mi sarebbe servita più di tanto, visto che il processo di reindicizzazione non consente la modifica multipla dei numeri indice e bisogna quindi operare ripetutamente sul singolo Attributo e attendere ad ogni operazione il tempo necessario di una manciata di secondi per poter permettere ad Archicad di eseguire l’operazione.
Funzione di Reindicizzazione e relativa interfaccia grafica.
In progetti di grosse dimensioni è intuibile come il numero di Attributi da dover gestire e coordinare possa giungere ad alcune centinaia. Moltiplicate all’incirca 5 secondi del processo di reindicizzazione per un paio di centinaia (se non anche di più) di Attributi e potete immaginare perché nemmeno questa funzione mi avrebbe facilitato la vita qualora fosse stata anticipata di qualche versione.
Con la versione 22 di Archicad, ma anche con quelle attuali, è possibile reindicizzare in maniera manuale Attributi semplicemente utilizzando le opzioni di Aggiungi, Aggiungi per Indice e Aggiungi per Nome spostando Attributi nell’elenco temporaneo. Attraverso un semplice conteggio mentale è possibile cambiare il numero indice per poi essere di nuovo riportati nella sezione del progetto corrente. In tutti i casi avevo la necessità di adottare un processo ancora più efficiente.
Fu così che ebbi l’idea di studiare il formato file XML in esportazione da Archicad.
Non possiedo una conoscenza dei linguaggi di programmazione, ma la struttura di un XML mi sembrava abbastanza semplice da analizzare e comparare con quanto fatto in Archicad. In fondo, tale formato non fa altro che trasportare informazioni inerenti i settaggi dei vari Attributi; una correlazione non poteva essere così difficile da trovare. Aprendo il file XML con qualsiasi programma di editing di testo, come Textedit o SublimeText è possibile visualizzare la struttura. Una delle mie prime scoperte fu proprio come cambiare il numero indice, che viene indicato all’interno del formato XML come segue (l’utilizzo della simbologia […] sta ad indicare un prosieguo delle righe di codice):
[…]
<BuildingMaterial Idx="1" Name="Mattone">
<OdbObj Mv="4" Sv="0">
<OdbRef>
<guid>9152E4E2-E688-F54D-8159- CF6A1285A750</guid>
</OdbRef>
<CreaTime>24091</CreaTime>
<ModiTime>24119</ModiTime>
</OdbObj>
<Name>Mattone</Name>
<Index>1</Index>
[…]
Cambiando, ad esempio, il numero indice 1 con il numero indice 999 all’interno di entrambe le righe di codice evidenziate in grassetto è possibile reindicizzare l’Attributo come segue:
[…]
<BuildingMaterial Idx="999" Name="Mattone">
<OdbObj Mv="4" Sv="0">
<OdbRef>
<guid>9152E4E2-E688-F54D-8159- CF6A1285A750</guid>
</OdbRef>
<CreaTime>24091</CreaTime>
<ModiTime>24119</ModiTime>
</OdbObj>
<Name>Mattone</Name>
<Index>999</Index>
[…]
In pochi minuti è possibile cambiare e gestire gli Attributi in modo da ottenere una struttura coerente rispetto a quella che presenta diverse problematiche nel coordinamento fra più modelli informativi.
Nel corso di questi ultimi anni mi sono addentrato sempre di più nella comprensione della struttura dati di un Attributo in formato XML.
In una delle implementazioni BIM che sto curando, uno degli obiettivi richiesti consiste nel creare un database Archicad di Materiali da Costruzione e Superfici correlato all’archivio fisico presente in studio. Questa nuova sfida mi ha messo di fronte a ulteriori problematiche da risolvere, non tanto per quanto riguarda la reindicizzazione, quanto più rispetto a tutti i settaggi univoci da dover compilare per ogni singolo Attributo.
Pensate ad esempio quanto tempo si impiega nel compilare la singola voce di ID per i Materiali da Costruzione su un totale di circa 900 Attributi. Su questa considerazione ho iniziato a utilizzare la funzione Trova e Sostituisci presente in ogni programma di editing di testo. Per utilizzare questa funzione è stato necessario studiare una nomenclatura adeguata, non solo agli standard dello studio, ma soprattutto in relazione alla categorizzazione degli stessi Attributi.
Inserire un codice a due lettere all’interno del Materiale da Costruzione mi ha permesso di ricercare in pochi secondi le stesse tipologie e gestire parametri comuni come ad esempio Retini di Sezione, Penne, Classificazioni, ecc.
Utilizzo della funzione Trova e Sostituisci all’interno di SublimeText.
Un ultimo problema si è presentato nel momento in cui ho dovuto gestire il parametro ID dei singoli Materiali da Costruzione che può essere riassunto come quanto segue:
Esempio: GL-01
Descrizione: <codice materiale>-<numero sequenziale>
Lettura: Glass (vetro) numero 1
Una semplice visualizzazione tabulare del formato XML mi avrebbe consentito gestire, come per un foglio Excel, tutte le proprietà ID in una sola colonna. Tramite una ricerca sul web, xmlgrid.net ha convertito un XML in un formato tabulare, velocizzando il processo di mappatura dei Materiali da Costruzione.
Conversione del file Attributi XML in forma tabulare mediante il sito web xmlgrid.net
Nello specifico, riporto di seguito alcune considerazioni sul formato XML, in particolare per quanto riguarda le righe di codice che descrivono i settaggi presenti nel pannello di configurazione dei Materiali da Costruzione. La riga di codice </BIMData> descrive i settaggi dell’Attributo, i quali possono essere raggruppati in colonna tramite xmlgrid.net.
[…]
</BIMData>
<ID>EF-04</ID>
<ConnPriority>5169</ConnPriority>
<CutFill>1</CutFill>
<CutFillPen>168</CutFillPen>
<CutFillBackgroundPen>-1</CutFillBackgroundPen>
<CutMaterial>56</CutMaterial>
<CutFillOrientation>BuildingMaterialProjectOrigin</CutFillOrientation>
<ThermalConductivity>0.58</ThermalConductivity>
<Density>1500</Density>
<HeatCapacity>840</HeatCapacity>
<EmbodiedEnergy>3</EmbodiedEnergy>
<EmbodiedCarbon>0.24</EmbodiedCarbon>
<ShowUncutLines>true</ShowUncutLines>
<Description/>
[…]
Corrispondenza fra righe di codice XML e settaggi per le Superfici in Archicad.
Della gestione avanzata degli Attributi in formato XML ho parlato pochi mesi fa in BIM Talks, una serie internazionale di appuntamenti webinar fra i professionisti che sono stati certificati Graphisoft Archicad BIM Manager a seguito del superamento del BIM Manager Program. Un’occasione per conoscere realtà e professionisti al di fuori del nostro panorama nazionale e che, a seguito dell’interesse di questi ultimi, mi ha fatto prendere in seria considerazione l’idea di sviluppare un plug-in che consentisse di gestire in maniera più efficiente ogni aspetto degli Attributi, dai numeri indice ai singoli settaggi.
Grazie, in particolar modo, alla collaborazione dell’Ing. Antonio Ciardo, abbiamo portato avanti nel corso dei mesi passati una prima idea di questo plug-in, una sorta di versione alpha capace di convertire automaticamente un file XML in formato tabulare Numbers.
Programmato in Python, il plug-in è richiamabile dal Terminale di macOS e consente di poter scegliere quale tipologia di Attributo convertire in Numbers, convertendo per l’appunto il file XML in formato CSV e avviando automaticamente Numbers stesso. Al termine del processo di gestione degli Attributi il plug-in è in grado di convertire nuovamente il CSV in una struttura XML congrua all’importazione in Archicad.
Con la disponibilità da parte di Graphisoft al rilascio delle API (Application Programming Interface) di Archicad, lo sviluppo di nuovi plug-in sta diventando una pratica sempre più comune. Basta dare uno sguardo al progetto tAPIr sviluppato dallo studio Enzyme per sfruttare le potenzialità delle API di Archicad in Grasshopper.
Quali possono essere le idee future per quanto riguarda gli Attributi? Sicuramente lo sviluppo di un’interfaccia grafica integrata in Archicad che permetta di gestire gli Attributi e i loro settaggi in forma tabulare, oltre che la loro sincronizzazione automatica fra più modelli di progetto. Questa rappresenta una delle sfide più grandi che cercherò di portare avanti nei prossimi mesi, con la collaborazione di altri professionisti del settore e non.