Vai al contenuto
PDF

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, come WALL next point [Esc to finish]:.
  • help elenca tutti i comandi con una riga di descrizione; help wall mostra l'utilizzo di uno solo. ? ▸ Comandi nella barra del titolo fa lo stesso di help.

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:

# a small house
wall 0,0 10,0 10,6 0,6 c
door 5,0
window 10,3
floor walls
roof walls

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:

claude mcp add bimopen -- bimopen-cli mcp --sample

oppure, in un client configurato con JSON:

{ "mcpServers": { "bimopen": { "command": "bimopen-cli", "args": ["mcp", "--sample"] } } }

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.