Skip to content

Command line

bimble without arguments opens the viewer. Every command prints its own help with --help; this page is that help, gathered. Models are .ifc or .bimble files unless a command says otherwise.

Open-source structural BIM. Run without arguments to open the viewer.

Usage: bimble [OPTIONS] [COMMAND]

Commands:
  view           Open the 3D viewer (optionally with a .ifc or .bimble file)
  plan           A storey plan or any view (ceiling plan, section) at scale, as PDF, SVG or PNG (by extension)
  plan-template  Print the default plan template, or check a template file and print it in full
  style          Print the complete default graphic style, or check a style file and print it in full
  demo           Generate the demo concrete frame (2 storeys, 3×2 bays by default)
  info           Summary of a .bimble or .ifc file: counts, materials, triangles, load time
  views          List the views of a model (plans, ceiling plans, sections), for `plan --view`
  sheets         List the sheets of a model (number, name, paper, the views placed on them)
  project        Project information (ADR 0030): print it, or set entries with KEY=VALUE (an empty VALUE removes the entry). Title blocks show each value where they say {KEY}
  schedules      List the schedules (columns, beams, slabs, walls, footings by material) and their counts
  schedule       A schedule as a table: each element measured (section, length, area, volume), grouped by level with subtotals; printed, or written as CSV for a spreadsheet
  sheet          Draw a sheet (its views at their scales, title block, legend) as PDF, SVG or PNG
  sheet-new      Add a sheet with views laid out side by side, e.g. `bimble sheet-new m.bimble --name Plans --place "Plan Level 1:100" --place "Section 1:50"`. Saved in the .bimble file, or in the side file of an IFC
  ls             List elements (GlobalId, IFC class, name, generator)
  set            Change one generator parameter, e.g. `bimble set f.bimble <GlobalId> height=600 -o g.bimble`
  diff           Element-level diff between two .bimble files
  export-ifc     Export to IFC4
  import-ifc     Convert an IFC file into an editable .bimble model (ADR 0032)
  history        Model history: commits, branches, log, diff and merge (kept in <model>-history/)
  pack           A file to share for viewing (.bimbleview) from a .ifc or .bimble: opens without parsing the IFC, read-only, also in a browser (ADR 0040)
  bench          Measure rendering speed on this machine (generated models of 1k–50k elements, plus files)
  render         Render a .ifc or .bimble file to a PNG, without a window
  help           Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help
  -V, --version     Print version

Viewing

view

Open the 3D viewer (optionally with a .ifc or .bimble file)

Usage: bimble view [OPTIONS] [FILE]

Arguments:
  [FILE]  

Options:
      --style <STYLE>  Graphic style file (JSON; see `bimble style`)
      --link <LINK>    Another model to show as a reference (e.g. the architect's IFC), to compare
  -v, --verbose...     More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help           Print help

render

Render a .ifc or .bimble file to a PNG, without a window

Usage: bimble render [OPTIONS] <FILE> <OUT>

Arguments:
  <FILE>  
  <OUT>   

Options:
      --width <WIDTH>          [default: 1600]
      --height <HEIGHT>        [default: 1000]
      --azimuth <AZIMUTH>      Camera direction in degrees around the vertical axis [default: -55]
      --elevation <ELEVATION>  Camera elevation in degrees above the horizon [default: 28]
      --ortho                  Orthographic projection instead of perspective
      --hide <HIDE>            Material families to hide, comma-separated (e.g. earth,glass)
      --samples <SAMPLES>      MSAA samples (1 or 4) [default: 4]
      --style <STYLE>          Graphic style file (JSON; see `bimble style`)
      --clip <CLIP>            Section box in model coordinates (mm): x0,y0,z0,x1,y1,z1. Only what is inside is drawn; cut solids show their cut surface
  -v, --verbose...             More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help                   Print help

info

Summary of a .bimble or .ifc file: counts, materials, triangles, load time

Usage: bimble info [OPTIONS] <FILE>

Arguments:
  <FILE>  

Options:
      --elements-json  Print one JSON object per element (GlobalId, class, volume, world bounding box in mm)
  -v, --verbose...     More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help           Print help

bench

Measure rendering speed on this machine (generated models of 1k–50k elements, plus files)

Usage: bimble bench [OPTIONS] [FILES]...

Arguments:
  [FILES]...  Extra .ifc / .bimble files to benchmark

Options:
      --frames <FRAMES>    [default: 120]
      --width <WIDTH>      [default: 1920]
      --height <HEIGHT>    [default: 1080]
      --samples <SAMPLES>  MSAA samples (1 or 4; the viewer uses 4) [default: 4]
      --quick              Only the smallest generated model
      --occlusion          With occlusion culling (the viewer turns it on when the GPU is slow)
      --proxies <PROXIES>  Draw far cells' simplified stand-ins when their error spans at most this many pixels (0: never) [default: 0]
      --gpu-occlusion      With occlusion culling by GPU queries (last frame's answers; native backends)
      --gpu-cull           Cull shape copies on the GPU (compute shaders, indirect draws)
      --json               Machine-readable output
  -v, --verbose...         More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help               Print help

pack

Writes a file to share for viewing: the scene, compressed, each repeated shape once; read-only, no property sets.

A file to share for viewing (.bimbleview) from a .ifc or .bimble: opens without parsing the IFC, read-only, also in a browser (ADR 0040)

Usage: bimble pack [OPTIONS] <INPUT> <OUT>

Arguments:
  <INPUT>  
  <OUT>    

Options:
      --no-gzip     Leave it uncompressed (gzip is about half the size)
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

Drawings

plan

A storey plan or any view (ceiling plan, section) at scale, as PDF, SVG or PNG (by extension)

Usage: bimble plan [OPTIONS] <FILE> <OUT>

Arguments:
  <FILE>  
  <OUT>   Output: .pdf, .svg or .png

Options:
      --dpi <DPI>            Resolution of a .png output, dots per inch [default: 150]
      --storey <STOREY>      Storey name (see `bimble info`)
      --view <VIEW>          Draw a view instead (a plan with its view range, a ceiling plan, a section) by name, e.g. "Ceiling Level 1"; `bimble views` lists them
      --scale <SCALE>        Scale 1:N, N from 1 to 5000 [default: 100]
      --paper <PAPER>        A4, A3, A2, A1 or A0; by default the smallest that fits
      --cut <CUT>            Height of the cut plane above the storey level, mm [default: 1200]
      --style <STYLE>        Graphic style file (colours, hatches, pens on paper; see `bimble style`)
      --project <PROJECT>    Project name in the title block (default: the file name)
      --template <TEMPLATE>  Plan template: title block, legend, texts, what is shown (see `bimble plan-template`)
      --field <KEY=VALUE>    A title block value, KEY=VALUE, used as {KEY} in the template (repeatable)
  -v, --verbose...           More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help                 Print help

views

List the views of a model (plans, ceiling plans, sections), for `plan --view`

Usage: bimble views [OPTIONS] <FILE>

Arguments:
  <FILE>  

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

sheets

List the sheets of a model (number, name, paper, the views placed on them)

Usage: bimble sheets [OPTIONS] <FILE>

Arguments:
  <FILE>  

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

sheet

Draw a sheet (its views at their scales, title block, legend) as PDF, SVG or PNG

Usage: bimble sheet [OPTIONS] <FILE> <NUMBER> <OUT>

Arguments:
  <FILE>    
  <NUMBER>  Sheet number, e.g. S-101 (see `bimble sheets`)
  <OUT>     Output: .pdf, .svg or .png

Options:
      --dpi <DPI>            Resolution of a .png output, dots per inch [default: 150]
      --style <STYLE>        Graphic style file (see `bimble style`)
      --template <TEMPLATE>  Plan template: title block, legend, texts (see `bimble plan-template`)
      --project <PROJECT>    Project name in the title block (default: the file name)
  -v, --verbose...           More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help                 Print help

sheet-new

Add a sheet with views laid out side by side, e.g. `bimble sheet-new m.bimble --name Plans --place "Plan Level 1:100" --place "Section 1:50"`. Saved in the .bimble file, or in the side file of an IFC

Usage: bimble sheet-new [OPTIONS] --name <NAME> <FILE>

Arguments:
  <FILE>  

Options:
      --name <NAME>      
      --number <NUMBER>  Sheet number; by default the next free one (S-101, S-102…)
      --paper <PAPER>    A4, A3, A2, A1 or A0 [default: A1]
      --portrait         
      --place <VIEW:N>   A view and its scale, VIEW:N (repeatable, placed left to right)
  -v, --verbose...       More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help             Print help

schedules

List the schedules (columns, beams, slabs, walls, footings by material) and their counts

Usage: bimble schedules [OPTIONS] <FILE>

Arguments:
  <FILE>  

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

schedule

A schedule as a table: each element measured (section, length, area, volume), grouped by level with subtotals; printed, or written as CSV for a spreadsheet

Usage: bimble schedule [OPTIONS] <FILE> <NAME>

Arguments:
  <FILE>  
  <NAME>  Schedule name, e.g. "Concrete columns" (see `bimble schedules`)

Options:
      --csv <CSV>   Write CSV here instead of printing a table
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

project

Project information (ADR 0030): print it, or set entries with KEY=VALUE (an empty VALUE removes the entry). Title blocks show each value where they say {KEY}

Usage: bimble project [OPTIONS] <FILE> [SET]...

Arguments:
  <FILE>    
  [SET]...  KEY=VALUE, e.g. client="City of X" project_number=P-001 (repeatable)

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

plan-template

Print the default plan template, or check a template file and print it in full

Usage: bimble plan-template [OPTIONS] [FILE]

Arguments:
  [FILE]  Template to check; without it, the default template is printed

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

style

Print the complete default graphic style, or check a style file and print it in full

Usage: bimble style [OPTIONS] [FILE]

Arguments:
  [FILE]  Style file to check; without it, the default style is printed

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

Models

demo

Generate the demo concrete frame (2 storeys, 3×2 bays by default)

Usage: bimble demo [OPTIONS] <OUT>

Arguments:
  <OUT>  

Options:
      --bays-x <BAYS_X>    [default: 3]
      --bays-y <BAYS_Y>    [default: 2]
      --storeys <STOREYS>  [default: 2]
  -v, --verbose...         More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help               Print help

ls

List elements (GlobalId, IFC class, name, generator)

Usage: bimble ls [OPTIONS] <FILE>

Arguments:
  <FILE>  

Options:
      --class <CLASS>  Filter by IFC class, e.g. IfcBeam
  -v, --verbose...     More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help           Print help

set

Change one generator parameter, e.g. `bimble set f.bimble <GlobalId> height=600 -o g.bimble`

Usage: bimble set [OPTIONS] <FILE> <ID> <ASSIGNMENT>

Arguments:
  <FILE>        
  <ID>          
  <ASSIGNMENT>  key=value (numeric)

Options:
  -o, --out <OUT>   
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

diff

Element-level diff between two .bimble files

Usage: bimble diff [OPTIONS] <A> <B>

Arguments:
  <A>  
  <B>  

Options:
      --json        
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

export-ifc

Export to IFC4

Usage: bimble export-ifc [OPTIONS] <FILE> <OUT>

Arguments:
  <FILE>  
  <OUT>   

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

import-ifc

Converts an IFC file (IFC2x3 / IFC4 / IFC4x3) into an editable .bimble model. Every element with a shape comes along with its GlobalId, storey and material. Columns, beams, slabs, walls and footings with rectangular sections come back as parametric elements, other extrusions as polygon generators, and explicit meshes as mesh elements; elements of other classes become IfcBuildingElementProxy keeping their class name. The file is binary; an <OUT> ending in .json writes JSON text. Openings (IfcOpeningElement) are kept on the element and cut out of the mesh; property sets are imported as text values (Pset/Property); everything else is reported, never dropped silently.

Convert an IFC file into an editable .bimble model (ADR 0032)

Usage: bimble import-ifc [OPTIONS] <FILE> <OUT>

Arguments:
  <FILE>  
  <OUT>   

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

Example report:

→ frame.bimble
73 elements (73 parametric, 0 extruded polygons, 0 meshes)
  IfcBeam: 34
  IfcColumn: 25
  IfcFooting: 12
  IfcSlab: 2
  openings: 33 cut on import (as meshes, subtracted at draw time)
  property values: 410

History

See History: versions and variants for how it works.

history init

Start a history for a .bimble model

Usage: bimble history init [OPTIONS] <MODEL>

Arguments:
  <MODEL>  

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

history commit

Record the model as it is now

Usage: bimble history commit [OPTIONS] --message <MESSAGE> <MODEL>

Arguments:
  <MODEL>  

Options:
  -m, --message <MESSAGE>  
      --author <AUTHOR>    Default: $BIMBLE_AUTHOR, else $USER
  -v, --verbose...         More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help               Print help

history status

What changed since the last commit

Usage: bimble history status [OPTIONS] <MODEL>

Arguments:
  <MODEL>  

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

history log

Commits, newest first

Usage: bimble history log [OPTIONS] <MODEL> [REV]

Arguments:
  <MODEL>  
  [REV]    Branch, commit (or prefix) or HEAD~n [default: HEAD]

Options:
  -n, --limit <LIMIT>  [default: 20]
  -v, --verbose...     More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help           Print help

history diff

Changes between two revisions; with one, between it and the model as it is now

Usage: bimble history diff [OPTIONS] <MODEL> <A> [B]

Arguments:
  <MODEL>  
  <A>      
  [B]      

Options:
      --json        
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

history branch

List branches, or create one at HEAD (or at --at)

Usage: bimble history branch [OPTIONS] <MODEL> [NAME]

Arguments:
  <MODEL>  
  [NAME]   

Options:
      --at <AT>     
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

history switch

Switch to a branch or commit: the model file is replaced by its state there

Usage: bimble history switch [OPTIONS] <MODEL> <REV>

Arguments:
  <MODEL>  
  <REV>    

Options:
      --force       Even when the model has changes not committed (they are lost)
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

history merge

Merge a branch or commit into the current branch (object by object, by GlobalId)

Usage: bimble history merge [OPTIONS] <MODEL> <REV>

Arguments:
  <MODEL>  
  <REV>    

Options:
      --prefer <PREFER>  When both sides changed the same object: keep ours or theirs instead of stopping [possible values: ours, theirs]
      --author <AUTHOR>  
  -v, --verbose...       More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help             Print help

Working together

Through a shared folder: see Working together.

history remote

Show the shared folder this history synchronizes with, or set it

Usage: bimble history remote [OPTIONS] <MODEL> [DIR]

Arguments:
  <MODEL>  
  [DIR]    

Options:
  -v, --verbose...  More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help        Print help

history clone

A new local copy of a shared history (its folder) as a model file

Usage: bimble history clone [OPTIONS] <REMOTE> <MODEL>

Arguments:
  <REMOTE>  
  <MODEL>   

Options:
      --branch <BRANCH>  [default: main]
  -v, --verbose...       More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help             Print help

history push

Send the current branch to the remote (refused unless it only adds to it)

Usage: bimble history push [OPTIONS] <MODEL>

Arguments:
  <MODEL>  

Options:
      --author <AUTHOR>  Your e-mail. Default: $BIMBLE_AUTHOR, else $USER
  -v, --verbose...       More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help             Print help

history sync

Fetch, merge and push; give back your borrowed elements

Usage: bimble history sync [OPTIONS] <MODEL>

Arguments:
  <MODEL>  

Options:
      --prefer <PREFER>  When both changed the same field: keep ours or theirs instead of stopping [possible values: ours, theirs]
      --author <AUTHOR>  
  -v, --verbose...       More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help             Print help

history borrow

Borrow elements (GlobalIds) before changing them, so others are warned

Usage: bimble history borrow [OPTIONS] <MODEL> [IDS]...

Arguments:
  <MODEL>   
  [IDS]...  

Options:
      --author <AUTHOR>  
  -v, --verbose...       More messages on stderr: -v what is loaded and how long it took, -vv each step, -vvv the libraries' too. Errors and warnings are always shown
  -h, --help             Print help