BIMvision Python API Bridge – jak BIMvision staje się centrum automatyzacji procesów BIM
BIMvision zyskuje nową rolę dzięki Python API Bridge, które udostępnia lokalne REST API do sterowania modelami IFC z poziomu skryptów Python. Rozwiązanie umożliwia walidację modeli, kosztorysowanie, automatyczne raportowanie, integrację z AI, GIS i CI/CD, a także budowę własnych workflow BIM bez tworzenia pluginów w C++.

BIMvision wchodzi w nową rolę
Przez wiele lat BIMvision był kojarzony głównie jako szybka i wygodna przeglądarka modeli IFC. Darmowy dostęp, niewielkie wymagania sprzętowe i rozbudowany system pluginów sprawiły, że rozwiązanie zdobyło popularność wśród projektantów, wykonawców i BIM managerów.
Wraz z premierą BIMvision Python API Bridge platforma zyskuje jednak zupełnie nowy wymiar. Plugin pozwala komunikować się z BIMvision z poziomu zewnętrznych skryptów Python poprzez REST API, dzięki czemu aplikacja może stać się częścią większych procesów automatyzacji oraz integracji danych.
To już nie tylko środowisko do przeglądania modeli, ale także narzędzie, które można programowo kontrolować i włączać do własnych workflow BIM.
Jak działa Python API Bridge
Mechanizm działania został zaprojektowany w prosty i praktyczny sposób. Po uruchomieniu pluginu BIMvision udostępnia lokalny serwer HTTP działający na porcie 5000. Zewnętrzne aplikacje lub skrypty Python mogą wysyłać zapytania REST API odpowiedzialne za obsługę modeli, zaznaczanie elementów, pobieranie właściwości czy sterowanie widokiem.
Dzięki temu BIMvision może współpracować z:
- aplikacjami desktopowymi,
- notebookami Jupyter,
- pipeline’ami CI/CD,
- systemami kosztorysowymi,
- rozwiązaniami AI,
- platformami GIS oraz CDE.
import requests
BASE = "http://localhost:5000"
# Pobierz liste wszystkich elementow w modelu
elements = requests.get(f"{BASE}/elements").json()
# Zaznacz konkretny element po GlobalId
requests.post(f"{BASE}/select", json={"globalId": "3Kx9Az7Bm..."})
# Pobierz wlasciwosci zaznaczonego elementu
props = requests.get(f"{BASE}/element/properties").json()
print(props["Pset_WallCommon"]["IsExternal"])
Najważniejsze jest to, że integracja nie wymaga tworzenia pluginów w C++ ani pracy bezpośrednio z SDK. Wystarczy znajomość Pythona oraz podstaw komunikacji REST API.
Przykładowe zastosowania Python Bridge
1. Walidacja modeli IFC
Jednym z najbardziej praktycznych zastosowań jest automatyczna kontrola jakości modeli IFC. Zamiast ręcznej analizy modelu użytkownik może przygotować własny skrypt sprawdzający kompletność parametrów lub zgodność z wymaganiami projektu.
braki = []
for el in requests.get(f"{BASE}/elements?ifcClass=IfcWall").json():
props = requests.get(f"{BASE}/element/{el['id']}/properties").json()
if "Width" not in props.get("Pset_WallCommon", {}):
braki.append({
"globalId": el["globalId"],
"poziom": el["storey"],
"problem": "brak grubosci sciany"
})
# Zaznacz wszystkie wadliwe elementy w modelu
requests.post(f"{BASE}/select/multiple",
json={"globalIds": [b["globalId"] for b in braki]})
Takie podejście pozwala szybko lokalizować błędy bez konieczności tworzenia dedykowanych rozszerzeń.
2. Integracja z kosztorysowaniem i przedmiarami
Python Bridge może również pełnić rolę warstwy integracyjnej pomiędzy modelem BIM a systemami kosztorysowymi.
slabs = requests.get(f"{BASE}/elements?ifcClass=IfcSlab").json()
pozycje = []
for slab in slabs:
geo = requests.get(f"{BASE}/element/{slab['id']}/geometry").json()
props = requests.get(f"{BASE}/element/{slab['id']}/properties").json()
pozycje.append({
"typ": props.get("PredefinedType", "FLOOR"),
"material": props.get("IfcMaterial", {}).get("name", "?"),
"grubosc_m": props.get("Pset_SlabCommon", {}).get("Width", 0),
"pole_m2": geo.get("area", 0),
"objetosc_m3":geo.get("volume", 0),
"kondygnacja":slab.get("storey"),
})
# Wyslij do BIMestiMate API
requests.post("https://api.bimestimate.pl/v1/takeoff",
json={"projekt_id": "PRJ-2026-041", "elementy": pozycje})
Dzięki temu można ograniczyć liczbę ręcznych eksportów oraz uprościć przepływ danych pomiędzy środowiskami BIM i kosztorysowymi.
3. Współpraca z AI i modelami językowymi
Interesującym kierunkiem rozwoju jest wykorzystanie API do współpracy z rozwiązaniami AI. Python Bridge pozwala dostarczać modelom językowym informacje o aktualnie analizowanych elementach BIM.
import anthropic
def zapytaj_o_model(pytanie: str) -> str:
elementy = requests.get(f"{BASE}/elements/summary").json()
zaznaczony = requests.get(f"{BASE}/selection/properties").json()
klient = anthropic.Anthropic()
odp = klient.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1000,
system=f"""Jestes asystentem analizy modeli BIM.
Model zawiera: {elementy['summary']}.
Zaznaczony element: {zaznaczony}.""",
messages=[{"role": "user", "content": pytanie}]
)
return odp.content[0].text
print(zapytaj_o_model(
"Czy ta sciana spelnia wymogi izolacyjnosci termicznej dla strefy III?"
))
Takie rozwiązanie może stanowić podstawę do budowy inteligentnych asystentów wspierających analizę modeli BIM.
4. Automatyczne raportowanie
REST API pozwala również automatyzować generowanie raportów oraz dokumentacji projektowej.
def raport_tygodniowy(plik_ifc: str):
requests.post(f"{BASE}/model/open", json={"path": plik_ifc})
stats = {
"elementy_total": len(requests.get(f"{BASE}/elements").json()),
"sciany_bez_materialu": waliduj_materialy("IfcWall"),
"stropy_bez_grubosci": waliduj_grubosci("IfcSlab"),
"kolizje": len(requests.get(f"{BASE}/clashes").json()),
}
# Zapisz snapshot widoku 3D
requests.post(f"{BASE}/view/screenshot",
json={"path": "/tmp/snapshot.png", "width": 1920})
return stats
Raporty mogą być uruchamiane automatycznie według harmonogramu i publikowane w systemach CDE lub wysyłane do zespołów projektowych.
5. Integracja BIM i GIS
Python Bridge dobrze wpisuje się także w scenariusze łączące dane BIM oraz GIS.
import geopandas as gpd
from shapely.geometry import box
mosty_bim = requests.get(f"{BASE}/elements?ifcClass=IfcBridge").json()
mosty_gis = gpd.read_file("bdot10k_mosty.gpkg")
for most in mosty_bim:
geo = requests.get(f"{BASE}/element/{most['id']}/geometry").json()
bbox = box(geo["bbox"]["minX"], geo["bbox"]["minY"],
geo["bbox"]["maxX"], geo["bbox"]["maxY"])
kandydaci = mosty_gis[mosty_gis.geometry.intersects(bbox)]
if len(kandydaci) == 1:
requests.post("https://api.semanticinfra.eu/cio/register", json={
"bim_globalId": most["globalId"],
"gis_featureId": kandydaci.iloc[0]["feature_id"],
"confidence": 0.94
})
Takie podejście umożliwia synchronizację danych infrastrukturalnych oraz budowę bardziej zaawansowanych środowisk cyfrowych.
6. Testowanie modeli BIM w CI/CD
Coraz częściej modele BIM traktowane są podobnie jak kod źródłowy — podlegają testom jakości oraz automatycznej walidacji.
# test_model_quality.py - uruchamiany przez GitHub Actions
import pytest
def test_wszystkie_sciany_maja_material():
sciany = requests.get(f"{BASE}/elements?ifcClass=IfcWall").json()
bez_mat = [s for s in sciany
if not requests.get(f"{BASE}/element/{s['id']}/material").json()]
assert len(bez_mat) == 0, f"{len(bez_mat)} scian bez materialu"
def test_brak_elementow_poza_kondygnacjami():
bez_kond = requests.get(f"{BASE}/elements?storey=null").json()
assert len(bez_kond) == 0, \
f"{len(bez_kond)} elementow poza kondygnacjami"
Dzięki integracji z pipeline’ami CI/CD możliwe staje się automatyczne kontrolowanie jakości modeli przed publikacją kolejnych wersji dokumentacji.
Kto może skorzystać z Python Bridge
Nowe API może być szczególnie interesujące dla:
- BIM managerów automatyzujących procesy kontroli modeli,
- integratorów budujących rozwiązania wokół BIM,
- zespołów kosztorysowych,
- programistów pracujących z IFC,
- badaczy analizujących dane budowlane,
- firm rozwijających własne workflow cyfrowe.
O czym warto pamiętać
Python Bridge działa lokalnie, co zwiększa bezpieczeństwo danych i ogranicza konieczność korzystania z usług chmurowych. Jednocześnie oznacza to, że środowisko BIMvision musi być uruchomione na komputerze wykonującym integrację.
Warto również pamiętać, że API odzwierciedla strukturę danych zawartą w modelu IFC. Jakość wyników zależy więc bezpośrednio od jakości samego modelu.
Ponieważ platforma jest rozwijana aktywnie, dobrze projektować własne integracje z zachowaniem warstwy abstrakcji umożliwiającej łatwiejsze aktualizacje.
Podsumowanie
BIMvision Python API Bridge pokazuje, że nowoczesne środowisko BIM może być czymś więcej niż tylko przeglądarką modeli IFC. Dzięki otwarciu na REST API oraz integrację z Pythonem BIMvision może stać się centralnym elementem automatyzacji procesów projektowych, kosztorysowych i analitycznych.
Możliwość budowy własnych narzędzi, automatycznej walidacji modeli, współpracy z AI czy integracji z GIS sprawia, że rozwiązanie otwiera nowe możliwości zarówno dla zespołów technicznych, jak i organizacji rozwijających cyfrowe procesy inwestycyjne.
To kierunek, który może znacząco przyspieszyć rozwój praktycznych zastosowań BIM w codziennej pracy projektowej.


