videorevitapipythonbim

Cos'è un'API — i mattoncini, e le mani che li montano

Che cos'è un'API, spiegato con i mattoncini: la scatola dei pezzi, le mani, la forma degli incastri. E le tre righe di Python che contano i muri di un modello Revit.

Paulo Giavoni

Paulo Giavoni

Ingegnere & Specialista BIM

19 agosto 20264 min di lettura

Tre lettere che senti dappertutto#

API. L'API di Google, l'API di WhatsApp, la Revit API. Il nome completo è Application Programming Interface, e diciamo la verità: da solo non dice niente. Serve un'immagine, e l'immagine giusta ce l'hai in casa da quando avevi sei anni.

I mattoncini#

Due mattoncini: uno scende, si appoggia sull’altro, clic
Due mattoncini: uno scende, si appoggia sull’altro, clic
La libreria (i pezzi già costruiti), il linguaggio (le mani) e in mezzo l’API: la forma degli incastri
La libreria (i pezzi già costruiti), il linguaggio (le mani) e in mezzo l’API: la forma degli incastri
Prendi due pezzi di LEGO. Uno scende, si appoggia sull'altro, clic. Tieni in mente quel clic, perché è tutto qui.

Da una parte c'è una scatola piena di pezzi già costruiti da qualcun altro. In programmazione quella scatola si chiama libreria. Dall'altra parte ci sei tu, con le tue mani: il linguaggio di programmazione, nel nostro caso Python. Due mondi separati, i pezzi di qualcun altro e le tue mani. Dove si parlano?

Si parlano nell'incastro. Ogni mattoncino ha i bottoni sopra e i tubi sotto, e quelle forme sono uguali per tutti i pezzi della scatola. L'API è proprio questo: non è i pezzi, non è le mani, è la forma degli incastri.

Nome, ingresso, uscita#

Il contratto dell’incastro «arrotonda»: cosa gli dai, 3,7; cosa restituisce, 4
Il contratto dell’incastro «arrotonda»: cosa gli dai, 3,7; cosa restituisce, 4
Il mattoncino è chiuso: usi la forma, mai il contenuto
Il mattoncino è chiuso: usi la forma, mai il contenuto
Ogni incastro ti dice tre cose, sempre le stesse:
  1. come si chiama;
  2. che cosa gli devi dare;
  3. che cosa ti dà indietro.

Prendi l'incastro «arrotonda»: nome, arrotonda; ingresso, un numero con la virgola; uscita, il numero intero più vicino. Questa terna ha un nome preciso: si chiama contratto. Se sai leggere un contratto, sai usare qualsiasi libreria del mondo.

E nota una cosa: come fa il pezzo ad arrotondare, che calcoli faccia lì dentro, non lo sai e non ti serve. Il mattoncino è chiuso. Tu usi la forma, mai il contenuto.

La tua giornata è piena di contratti così. La presa di corrente: due fori, una forma uguale per tutti, fra chi offre l'energia e chi la usa. Le API del web sono la stessa idea, solo che il mattoncino sta su un computer lontano.

E Revit?#

RevitAPI.dll: la scatola con Wall, Door, Level, Room, View, Floor
RevitAPI.dll: la scatola con Wall, Door, Level, Room, View, Floor
Porta tutto dentro Revit. Per chi programma, Revit è una scatola di mattoncini enorme: ogni cosa che vedi sullo schermo, muri, porte, livelli, viste, è un pezzo già costruito da Autodesk. La scatola ha un'etichetta: RevitAPI.dll. E il ponte che porta le tue mani dentro la scatola è un programma come il RevitPythonShell o pyRevit.

Il primo montaggio: contare i muri#

Tre righe, tre incastri: il modello ha 42 muri
Tre righe, tre incastri: il modello ha 42 muri
La domanda più semplice del mondo: quanti muri ci sono in questo modello? Tre incastri, uno sopra l'altro:
  • FilteredElementCollector: apre lo schedario del modello;
  • OfClass: gli dici quale tipo di pezzi vuoi, i muri;
  • GetElementCount: non gli dai niente, e ti dà un numero.

Quarantadue. Il modello ha quarantadue muri. Tre righe, nessuna magia: tre contratti letti bene.

E se sbagli? Se al collector passi una parola invece del documento, Revit ti risponde con un messaggio di errore. Quel messaggio è tuo amico: non è il codice che si rompe, è il contratto che ti dice cosa si aspettava.

Il libretto di istruzioni#

Da dove vengono questi nomi? Ogni scatola LEGO ha il suo libretto, e la scatola di Revit ha il suo: la documentazione della Revit API, dove ogni incastro è scritto con nome, ingresso e uscita.

E la scala è sempre questa: prima impari a leggere il modello, poi a filtrare e contare, poi a scrivere. Sempre in quest'ordine, sempre con gli stessi mattoncini. Non cambia la scatola: cambia quello che sai montare.

Guarda il video#

Nove minuti, dal clic dei mattoncini al primo codice, senza prerequisiti. Il video mostra i pezzi che si incastrano, il contratto letto riga per riga, la scatola di Revit che si apre e l'errore vero sullo schermo.

Il video completo è su YouTube: se ti è piaciuto, iscriviti al canale e attiva la campanella per i prossimi episodi.

Domande o commenti?

Le domande sui video e sul libro sono benvenute: scrivimi, o commenta sotto il video su YouTube.

Su LinkedIn pubblico ogni video del canale, con due righe in più.