Saltar a contenido
PDF

Línea de comandos y MCP

Todo lo que haces en BIMopen es un comando. Un clic en Muro y dos puntos en la planta ejecutan el mismo comando wall que puedes escribir tú mismo. Este capítulo describe la línea de comandos de la ventana, el programa bimopen-cli, que ejecuta los mismos comandos sin ventana, y el servidor MCP, a través del cual un agente de IA puede modelar, comprobar y renderizar un proyecto.

La línea de comandos de la ventana

La línea de comandos está bajo el área de dibujo. Su parte superior es el registro; su última fila es donde escribes.

  • No hace falta hacer clic en ella antes: todo lo que escribes mientras no se está editando ningún otro campo va allí.
  • Enter ejecuta la línea. El comando se repite en el registro tras un >, seguido de su resultado; un error se muestra en rojo y no cambia nada.
  • Up y Down recuperan las líneas escritas antes.
  • A la izquierda de la fila, el indicador dice lo que se espera: Command: cuando no hay ninguna herramienta activa, o la petición de la herramienta activa, como WALL next point [Esc to finish]:.
  • help enumera todos los comandos con una línea de descripción; help wall muestra el uso de uno. ? ▸ Comandos en la barra de título hace lo mismo que help.

Los atajos escritos inician las herramientas

Un comando escrito sin argumentos inicia la herramienta interactiva, como si hicieras clic en su botón: WA (o wall) inicia la herramienta de muro, DR la de puerta, VG abre Visibilidad/Gráficos. El mismo comando con argumentos hace el trabajo de inmediato, sin la herramienta: wall 0,0 5,0 dibuja un muro desde el origen hasta 5 m a lo largo de x.

Los nombres de los comandos, sus formas abreviadas y sus argumentos son los mismos en todos los idiomas de la interfaz; la mayoría acepta también un nombre italiano, como muro para wall. Los nombres de parámetros, de tipos y de vistas siguen el idioma de la interfaz: en inglés escribes set Unconnected Height 2.7m, en italiano set Altezza non collegata 2.7m. El capítulo sobre los atajos de teclado enumera todas las formas abreviadas.

Puntos y longitudes

Escribes Significa
3,4 El punto x = 3 m, y = 4 m
@2,0 2 m a lo largo de x y 0 a lo largo de y desde el punto anterior
@4<90 4 m desde el punto anterior, a 90° (ángulos en sentido antihorario desde el eje x)
2.7m, 270cm, 2700mm Una longitud con su unidad
2.7 o 2,7 Una longitud en metros: en la línea de comandos un número sin unidad está en metros

Por ejemplo, wall 0,0 @6,0 @4<90 0,4 c dibuja un rectángulo de 6 × 4 m; la c final lo cierra.

Warning

En la línea de comandos, set Unconnected Height 2700 significa 2700 metros. Escribe la unidad: 2700mm. En la paleta Propiedades, en cambio, un número sin unidad está en las unidades del proyecto, milímetros en un proyecto nuevo.

Argumentos en JSON

Cada comando acepta también sus argumentos como un objeto JSON, que da acceso a todas sus opciones. La línea de uso de help las enumera:

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"}

Comandos que usarás a menudo

Comando Qué hace
new, sample Un proyecto nuevo, el proyecto de ejemplo
open house.bimopen, save house.bimopen Abre y guarda un proyecto
undo, redo Deshace y rehace el último cambio
view 3d, view Ground Floor Abre la vista 3D por defecto, o la planta de un nivel
wall, door, window, floor, roof Elementos del modelo: consulta el uso con help
select walls, select all, deselect Selecciona por categoría, todo, nada
set <parameter> <value> Define un parámetro de la selección, como en la paleta Propiedades
type <type name> Cambia el tipo de la selección, o del próximo elemento
move 1,0, copy 0,3, rotate 90 Modifica la selección
delete Elimina la selección
list walls, params 102, info Enumera elementos, los parámetros de uno, un resumen del proyecto
schedule doors Muestra una tabla de planificación en la línea de comandos
export house.ifc Exporta IFC, SVG, PNG o CSV, según la extensión del archivo

Cada elemento tiene un número, su id, que se muestra entre paréntesis tras crearlo: Door «Single swing door 80x210» in wall 102 (106). Los comandos lo aceptan donde necesitan un elemento: params 106, delete 106.

bimopen-cli

bimopen-cli ejecuta BIMopen sin ventana: para convertir archivos, construir un proyecto a partir de un script, comprobar un modelo o servir a agentes mediante MCP. Compílalo 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]
Subcomando Qué hace
info <file> Un resumen del proyecto y, en JSON, sus niveles, el recuento de elementos y la vista activa
convert <in> <out> Abre <in> (.bimopen o .rvt) y escribe <out>: .ifc, .svg o .png de una planta (el nivel más bajo, o --level), .png de la vista 3D (--view 3d), .csv de una tabla de planificación (--schedule), o .bimopen
run Abre un archivo, el ejemplo o un proyecto nuevo, y luego ejecuta las opciones en orden: --cmd una línea, --script un archivo de líneas (las líneas vacías y las que empiezan por # se omiten), --save y --export un archivo
commands Todos los comandos, con su descripción y su uso
mcp El servidor MCP en la entrada y la salida estándar
--version La versión

Los mensajes están en el idioma de la variable de entorno BIMOPEN_LANG (it, en, de, fr, es, ar), o del sistema (LANG), o en italiano. bimopen-cli termina con el código 0 cuando todo ha funcionado, 1 cuando un comando ha fallado (el mensaje dice cuál) y 2 cuando los argumentos son incorrectos (imprime el uso).

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

Un script es un archivo de texto con un comando por línea, exactamente como se escribe en la línea de comandos:

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

Las tablas de planificación se escriben como CSV con ; entre las columnas, los encabezados en el idioma de los mensajes y una fila de totales al final.

MCP: BIMopen para agentes de IA

El Model Context Protocol (MCP) permite que un agente de IA use programas como herramientas. bimopen-cli mcp es un servidor MCP: habla JSON-RPC 2.0 en la entrada y la salida estándar, un mensaje por línea, y mantiene un proyecto abierto durante toda la conversación. Sin archivo, parte de un proyecto nuevo; --sample parte de la casa de ejemplo.

Para añadirlo a un agente, dale al agente el comando que debe iniciar. Por ejemplo, en Claude Code:

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

o, en un cliente configurado con JSON:

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

El servidor ofrece siete herramientas:

Herramienta Argumentos Qué hace
command_line line Escribe una línea en la línea de comandos, exactamente como lo haría una persona
execute command, args Ejecuta un comando con sus argumentos en JSON
inspect_model – Un resumen: niveles, recuento de elementos, vista activa, selección
query_elements category (opcional) Los elementos, con id, categoría y nombre: walls, doors, windows, floors, rooms, roomseps, grids, levels, types
get_params id Todos los parámetros de un elemento
schedule kind Una tabla de planificación: walls, doors, windows, floors, rooms o materials
render view, width, height, yaw, pitch Una imagen PNG de una vista: 3d, el nombre de un nivel para su planta, de una sección, un alzado, una llamada o una vista de diseño, o el número o el nombre de un plano; yaw y pitch giran la cámara 3D, en grados

Las respuestas contienen el mensaje del comando y, cuando los hay, sus datos en JSON, como los ids de los elementos creados. Un agente puede comprobar su propio trabajo pidiendo un renderizado.

Tip

Pide al agente que renderice la planta y la vista 3D después de cada paso: ve lo que ha construido y se corrige a sí mismo.