Riga di comando e MCP
Tutto ciò che fai in BIMopen è un comando. Un clic su Muro e due punti nella pianta eseguono
lo stesso comando wall che puoi digitare tu stesso. Questo capitolo descrive la riga di comando
della finestra, il programma bimopen-cli, che esegue gli stessi comandi senza finestra, e il
server MCP, attraverso il quale un agente di intelligenza artificiale può modellare, verificare e
rappresentare un progetto.
La riga di comando nella finestra
La riga di comando si trova sotto l'area di disegno. La sua parte superiore è il registro; la sua ultima riga è dove si digita.
- Non serve farci clic prima: tutto ciò che digiti mentre nessun altro campo è in modifica va lì.
- Enter esegue la riga. Il comando viene ripetuto nel registro dopo un
>, seguito dal suo risultato; un errore è mostrato in rosso e non cambia nulla. - Up e Down richiamano le righe digitate prima.
- A sinistra della riga, il prompt dice che cosa ci si aspetta:
Command:quando nessuno strumento è attivo, oppure la richiesta dello strumento attivo, comeWALL next point [Esc to finish]:. helpelenca tutti i comandi con una riga di descrizione;help wallmostra l'utilizzo di uno solo. ? ▸ Comandi nella barra del titolo fa lo stesso dihelp.
Le scorciatoie digitate avviano gli strumenti
Un comando digitato senza argomenti avvia lo strumento interattivo, come se facessi clic sul
suo pulsante: WA (o wall) avvia lo strumento muro, DR lo strumento porta, VG apre
Visibilità/Grafica. Lo stesso comando con argomenti esegue subito il lavoro, senza lo
strumento: wall 0,0 5,0 disegna un muro dall'origine fino a 5 m lungo x.
I nomi dei comandi, le loro forme brevi e i loro argomenti sono gli stessi in ogni lingua
dell'interfaccia; la maggior parte accetta anche un nome italiano, come muro per wall. I nomi
dei parametri, dei tipi e delle viste seguono la lingua dell'interfaccia: in inglese si digita
set Unconnected Height 2.7m, in italiano set Altezza non collegata 2.7m. Il
capitolo sulle scorciatoie da tastiera elenca tutte le forme brevi.
Punti e lunghezze
| Digiti | Significa |
|---|---|
3,4 |
Il punto x = 3 m, y = 4 m |
@2,0 |
2 m lungo x e 0 lungo y dal punto precedente |
@4<90 |
4 m dal punto precedente, a 90° (angoli in senso antiorario dall'asse x) |
2.7m, 270cm, 2700mm |
Una lunghezza con la sua unità |
2.7 o 2,7 |
Una lunghezza in metri: alla riga di comando un numero senza unità è in metri |
Per esempio, wall 0,0 @6,0 @4<90 0,4 c disegna un rettangolo di 6 × 4 m; la c finale lo
chiude.
Warning
Alla riga di comando set Unconnected Height 2700 significa 2700 metri. Scrivi l'unità:
2700mm. Nella tavolozza Proprietà, invece, un numero senza unità è nelle unità del
progetto, millimetri in un progetto nuovo.
Argomenti in JSON
Ogni comando accetta i suoi argomenti anche come oggetto JSON, che dà accesso a tutte le sue
opzioni. La riga di utilizzo di help li elenca:
wall 0,0 10,0 {"height":3.2,"location":"Linea d'asse del muro"}
roof walls {"slope":30,"overhang":0.5}
sheet A102 Plans {"title_block":"A3"}
export doors.csv {"schedule":"doors"}
Comandi che userai spesso
| Comando | Che cosa fa |
|---|---|
new, sample |
Un progetto nuovo, il progetto di esempio |
open house.bimopen, save house.bimopen |
Apre e salva un progetto |
undo, redo |
Annulla e ripristina l'ultima modifica |
view 3d, view Ground Floor |
Apre la vista 3D predefinita, o la pianta di un livello |
wall, door, window, floor, roof |
Elementi del modello: vedi l'utilizzo con help |
select walls, select all, deselect |
Seleziona per categoria, tutto, niente |
set <parameter> <value> |
Imposta un parametro della selezione, come nella tavolozza Proprietà |
type <type name> |
Cambia il tipo della selezione, o del prossimo elemento |
move 1,0, copy 0,3, rotate 90 |
Modifica la selezione |
delete |
Elimina la selezione |
list walls, params 102, info |
Elenca gli elementi, i parametri di uno di essi, un riepilogo del progetto |
schedule doors |
Mostra un abaco alla riga di comando |
export house.ifc |
Esporta IFC, SVG, PNG o CSV, in base all'estensione del file |
Ogni elemento ha un numero, il suo id, mostrato tra parentesi dopo la sua creazione:
Door «Single swing door 80x210» in wall 102 (106). I comandi lo accettano dove serve un
elemento: params 106, delete 106.
bimopen-cli
bimopen-cli esegue BIMopen senza finestra: per convertire file, per costruire un progetto da
uno script, per verificare un modello o per servire agenti tramite MCP. Si compila con
cargo build --release -p bimopen-cli.
bimopen-cli info <file>
bimopen-cli convert <in> <out> [--level NAME] [--view 3d] [--schedule walls|doors|windows|floors|rooms|materials]
bimopen-cli run [<file> | --sample] [--cmd LINE]… [--script FILE] [--save FILE] [--export FILE]…
bimopen-cli commands
bimopen-cli mcp [<file> | --sample]
| Sottocomando | Che cosa fa |
|---|---|
info <file> |
Un riepilogo del progetto e, in JSON, i suoi livelli, il numero di elementi e la vista attiva |
convert <in> <out> |
Apre <in> (.bimopen o .rvt) e scrive <out>: .ifc, .svg o .png di una pianta (il livello più basso, o --level), .png della vista 3D (--view 3d), .csv di un abaco (--schedule), oppure .bimopen |
run |
Apre un file, l'esempio o un progetto nuovo, poi esegue le opzioni nell'ordine: --cmd una riga, --script un file di righe (le righe vuote e quelle che iniziano con # vengono saltate), --save e --export un file |
commands |
Tutti i comandi, con la loro descrizione e il loro utilizzo |
mcp |
Il server MCP su standard input e standard output |
--version |
La versione |
I messaggi sono nella lingua della variabile d'ambiente BIMOPEN_LANG (it, en, de, fr,
es, ar), oppure del sistema (LANG), oppure in italiano. bimopen-cli termina con codice 0
quando tutto ha funzionato, 1 quando un comando non è riuscito (il messaggio dice quale), e 2
quando gli argomenti sono errati (stampa l'utilizzo).
export BIMOPEN_LANG=en
bimopen-cli run --script house.txt --save house.bimopen --export house.ifc
bimopen-cli convert house.bimopen plan.svg
bimopen-cli convert house.bimopen doors.csv --schedule doors
bimopen-cli convert house.bimopen first.png --level "First Floor"
bimopen-cli convert house.bimopen house-3d.png --view 3d
bimopen-cli convert project.rvt project.bimopen
Uno script è un file di testo con un comando per riga, esattamente come si digita alla riga di comando:
Gli abachi vengono scritti in CSV con ; tra le colonne, le intestazioni nella lingua dei
messaggi e una riga di totale alla fine.
MCP: BIMopen per gli agenti di IA
Il Model Context Protocol (MCP) permette a un agente di intelligenza artificiale di usare
programmi come strumenti. bimopen-cli mcp è un server MCP: parla JSON-RPC 2.0 su standard input
e standard output, un messaggio per riga, e tiene aperto un progetto per tutta la conversazione.
Senza un file parte da un progetto nuovo; --sample parte dalla casa di esempio.
Per aggiungerlo a un agente, fornisci all'agente il comando da avviare. Per esempio, in Claude Code:
oppure, in un client configurato con JSON:
Il server offre sette strumenti:
| Strumento | Argomenti | Che cosa fa |
|---|---|---|
command_line |
line |
Digita una riga alla riga di comando, esattamente come farebbe una persona |
execute |
command, args |
Esegue un comando con i suoi argomenti in JSON |
inspect_model |
– | Un riepilogo: livelli, numero di elementi, vista attiva, selezione |
query_elements |
category (facoltativo) |
Gli elementi, con id, categoria e nome: walls, doors, windows, floors, rooms, roomseps, grids, levels, types |
get_params |
id |
Tutti i parametri di un elemento |
schedule |
kind |
Un abaco: walls, doors, windows, floors, rooms o materials |
render |
view, width, height, yaw, pitch |
Un'immagine PNG di una vista: 3d, il nome di un livello per la sua pianta, di una sezione, di un prospetto, di un richiamo o di una vista di disegno, oppure il numero o il nome di una tavola; yaw e pitch ruotano la camera 3D, in gradi |
Le risposte riportano il messaggio del comando e, quando c'è, i suoi dati in JSON, come gli id degli elementi creati. Un agente può verificare il proprio lavoro chiedendo una rappresentazione.
Tip
Chiedi all'agente di rappresentare la pianta e la vista 3D dopo ogni passaggio: vede ciò che ha costruito e si corregge da solo.