Skip to content

Repository files navigation

LCA BIM for Bonsai

lcabim is the Blender/Bonsai reference prototype developed in the LCA to BIM research project. It demonstrates how Linked Data can connect life-cycle assessment (LCA) information with Building Information Modeling (BIM) workflows without tying the approach to a proprietary authoring tool or LCA backend. This repository implements the software prototype.

The prototype:

  • searches material- and construction-related EPD data;
  • assigns selected environmental data to IFC elements and assignment groups;
  • checks whether model quantities and mappings are ready for calculation;
  • calculates environmental impacts and stores results in IFC property sets; and
  • visualizes influential elements in the BIM model.

Semantic foundation

The project’s LCABIM ontology provides the common semantic layer for connecting heterogeneous BIM and LCA concepts. It is the basis of the RDF query datastore used by this prototype. Developers should consult the ontology documentation when changing graph structures, identifiers, mappings, or SPARQL queries.

The extension uses a local JSON API backed by Apache Jena Fuseki. The extension package does not distribute the private RDF datastore or IFC models.

Requirements

The prototype has been tested with this exact configuration. Compatibility with other versions has not been verified.

  • Windows 10 or Windows 11 x64
  • Blender 4.2.1 LTS
  • Bonsai 0.8.1-alpha240925 with IfcOpenShell 0.8.1-alpha240925
  • pandas 2.2.3 in Blender
  • Apache Jena Fuseki 5.3.0
  • OpenJDK 21.0.9
  • Python 3.11.15 in a Conda-managed development environment

Create the development environment:

conda env create -f environment.yml
conda activate lcabim-dev

Private RDF data

Private RDF data and user IFC models must not be committed. The approved test model documented below is the only public IFC exception.

Place the generated lean query store at:

.other/generated/query_store_combined.ttl

The complete canonical RDF source is needed only when regenerating the lean store. If it is available locally, place it at:

.other/lcabim_knowledge_graph.ttl

Regenerate the lean store with:

python tools/build_query_datastore.py `
  --source ".other/lcabim_knowledge_graph.ttl" `
  --output-dir ".other/generated"

Start the prototype services

Start Fuseki with the private lean datastore:

$repoRoot = (Resolve-Path '.').Path
$queryStore = Join-Path $repoRoot '.other\generated\query_store_combined.ttl'

Set-Location $env:FUSEKI_HOME
.\fuseki-server.bat --localhost --port 3030 `
  --file="$queryStore" `
  /EPD_RDF

Set FUSEKI_HOME locally to your Fuseki installation directory. Machine-specific paths belong in ignored local files, not in the repository.

Start the JSON API from the repository root:

conda run -n lcabim-dev python -m uvicorn epd_api.app:app `
  --host 127.0.0.1 --port 8000

Smoke-test both services:

Invoke-RestMethod `
  -Uri 'http://localhost:3030/EPD_RDF/sparql' `
  -Method Post `
  -Headers @{Accept='application/sparql-results+json'} `
  -ContentType 'application/sparql-query' `
  -Body 'ASK { ?s ?p ?o }'

Invoke-RestMethod -Uri 'http://localhost:8000/api/v1/health'

Build and install

Build and validate the Blender extension:

.\tools\build_extension.ps1

Install the resulting ZIP from Blender using Edit > Preferences > Get Extensions > Install from Disk. Enable LCA BIM for Bonsai, open an IFC project in Bonsai, and select the GEOMETRY tab. The LCA BIM panel appears in the Scene properties.

Prototype workflow

  1. Start Fuseki and the JSON API.
  2. Open an IFC model in Bonsai. The repository includes examples/lcabim_test_model.ifc for prototype testing.
  3. Use Scan Model Sources and review the available DIN and quantity sources.
  4. Select EPD filters and run Find EPDs.
  5. Review EPD, BKI, and IFC mapping results.
  6. Assign an EPD to an IFC element or an assignment group.
  7. Run the LCA readiness check and resolve missing mappings or quantities.
  8. Calculate environmental impacts.
  9. Store results in the lcabim_* IFC property sets.
  10. Use hotspot visualization and export an enriched IFC copy when required.

IFC files created or exported during testing must remain outside Git. The included test model is the only approved public IFC fixture.

Tests

Run the normal test suite:

conda run -n lcabim-dev python -m pytest -q

About

Blender and Bonsai reference prototype for the LCA to BIM research project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages