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.97

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.97
File Size Uploaded Provenance Actions
bimforge-0.1.97.tar.gz 593.7 kB With provenance Details for bimforge-0.1.97.tar.gz

Built distribution (wheel)

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

Total release size: 1.3 MB

Release files / bimforge-0.1.97.tar.gz

Download URL bimforge-0.1.97.tar.gz
Size 593.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ca89967a7658ba8bdb05e14a3e128b597c71071dab1d51d3f0d4b83e3edde17f
BLAKE2b-256 checksum
How to use checksums
6e5b2a61ad142ae13806453b4605eddc2968d1d50ad82def0771991f72743992
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 4, 2026.

Transparency log

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

Download URL bimforge-0.1.97-py3-none-any.whl
Size 677.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d81951c3b0c9d892e9a3ad8083d5d618064c30f410818ddb4482c430d74cd07
BLAKE2b-256 checksum
How to use checksums
1139d889d894208f36d346652e1e85eaf97e205dc48ebd9ee8b221628cd81af5
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 4, 2026.

Transparency log

Security for bimforge 0.1.97

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.97.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 4, 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