Skip to main content

bimforge

A standalone CAD/BIM toolkit in Python: measure 2D plan sheets, author parametric IFC models, roll them up into quantities, stage them in 4D/5D, and produce control, layout and structure sheets.

  • bimforge.bim — DXF → IFC authoring (IFC4X3 by default, exact extrusions and alignment sweeps), IFC → quantity takeoff, plan-sheet calibration and vector measurement, georeferencing, 3D KML/KMZ for Google Earth, 4D schedule embed/read-back (IfcWorkSchedule) and 5D cost and resource loading (IfcCostSchedule). Schedule readers for GanttWarrior JSON, Primavera P6 XER and MS Project MSPDI live here too.
  • bimforge.author — the structure-family kernel: alignments, section prisms, battered walls, reinforcing bars, plates, saddles, spillways, standard-plan families, with quantities taken from the emitted geometry and never from a parallel formula.
  • bimforge.sheets and bimforge.cad — sheet production and the org-neutral DXF/KML/geo engine, styled by pluggable style packs.
  • bimforge.terrain — terrain grids, watertight terrain solids and excavation carves from point clouds and contours.
  • bimforge.blender — Blender add-ons. Alignment Section puts a station slider in the 3D view sidebar that cuts a live cross-section along an IFC4X3 IfcAlignment (see below).

Install

pip install bimforge            # IFC stack included (ifcopenshell, ezdxf, shapely, pyproj, numpy)
pip install 'bimforge[all]'     # + PDF plan sheets, matplotlib drawing, build123d exact solids
pip install 'bimforge[terrain]' # + point-cloud / mesh terrain

Two CLIs ship with the package:

est-bim --help      # dxf2bim, ifc2dxf, takeoff, schedule, cost5d, kml, calibrate, measure, build, ...
est-sheets --help   # control / layout / structure sheet production

Blender: alignment section slider

python -m bimforge.blender        # writes bimforge_alignment_section.zip

In Blender 4.2+ install the zip from Edit > Preferences > Add-ons > Install from Disk. It needs ifcopenshell inside Blender, which Bonsai provides. Then go to 3D View > Sidebar (N) > Section, pick Bonsai (the IFC Bonsai has open) or File, and press Load Alignments. Drag Station to slide the section. You can also step by a fixed interval or type a station and press Go. View Section looks through an orthographic camera whose near clip sits on the cut. Every mesh is cut at the plane, and the cut is filled into Section Cut. Each item is filled per its own styling: its material's colour, which is the IFC surface style when Bonsai loaded it. An unstyled item (no material, or the default grey) is filled by what its material or object name says it is: concrete, rebar, asphalt, gravel, steel, timber or earthwork. Single colour switches back to one highlight colour. Every cut edge is also drawn as a thin dark line. That outlines the fills and shows open cuts, such as a ground surface, which has no inside to fill.

Offsets. An offset ruler runs across the section: CL, then ticks every Every (10' Lt, 10' Rt, ...) at a set height above grade. Locate puts the 3D cursor at the current station plus an offset Lt or Rt, at the grade elevation. It then reads the top model surface straight below, for example Sta 12+50.00, 3.50 Rt | PG EL 160.16 | top EL 150.92 existing-grade. Inquire reads the 3D cursor back as station and offset, and Cut also slides the section to it.

4D date. When the IFC carries a 4D schedule (IfcTask links, as written by est-bim schedule), the panel shows the model as it stands at the end of a day. A construction task's elements appear at its start, and a demolition, dismantle or removal task's elements disappear at its start. Hidden elements are not cut. Type a date, step by a day or a week, or jump to the previous or next day on which something appears or goes. The panel counts what is standing, not yet built and removed. The panel reports station, grade elevation, grade and bearing. With Follow timeline on, frames sweep the whole alignment, so rendering the animation makes a fly-through. Stations read in feet when the project is in feet or its map conversion is to a feet grid.

GIS (QGIS)

est-bim ifc2gis --ifc model.4d.ifc --out model.gpkg

The output is a true-3D GeoPackage in the project CRS. It has one layer of solids and one of lines (the alignment), and each feature carries its class, name, GlobalId, cost code and quantities. If the IFC has a 4D schedule, each feature also carries appear_date and vanish_date. If it has an alignment, each feature carries its station and offset range. Drag the file into QGIS and set the project CRS to match. Use View > 3D Map Views to see the Z, and the Temporal Controller (Layer Properties > Temporal > separate start and end date fields) to play the staging.

Style packs

CAD styling (title-block borders, layer colours, KML and IFC surface styles) comes from a style pack: a package or directory with templates/*.dxf and an optional styles.yaml. Resolution is explicit argument → registered providers → built-in neutral defaults. Any installed distribution can register a provider through the bimforge.style_packs entry-point group (a zero-argument callable returning a pack spec or None).

Fixture provenance

Test fixtures cite public sources or derive their quantities in-repo. They carry no employer bid numbers and no working-directory paths, and CI's de-org scan refuses a change that adds one.

License

Apache-2.0. See LICENSE and NOTICE. Security reports: SECURITY.md.

Metadata

Release files for bimforge 0.1.96

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bimforge 0.1.96
File Size Uploaded Provenance Actions
bimforge-0.1.96.tar.gz 583.9 kB With provenance Details for bimforge-0.1.96.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bimforge 0.1.96
File Interpreter ABI Platform Actions
bimforge-0.1.96-py3-none-any.whl Python 3 none any Details for bimforge-0.1.96-py3-none-any.whl

Total release size: 1.3 MB

Release files / bimforge-0.1.96.tar.gz

Download URL bimforge-0.1.96.tar.gz
Size 583.9 kB
Tags Source
SHA-256 checksum
How to use checksums
29191e2df9082b2cbb6b4c219688f216707843d1af69a847d3ce039778af53be
BLAKE2b-256 checksum
How to use checksums
30fa90bd8641ef58a4ffa24a012472602c91f3409a07e5d1c55dc432efc0a116
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / bimforge-0.1.96-py3-none-any.whl

Download URL bimforge-0.1.96-py3-none-any.whl
Size 667.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d848a60f57938c43fb66eb96aeb40670d1e9c02bc044e01ed8ad0067af22c4e7
BLAKE2b-256 checksum
How to use checksums
f357c3e50e7970ef5ca243f23bcd381c45a017055fd6191acfd925d4cddc581c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for bimforge 0.1.96

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bimforge-0.1.96.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page