Metadata-Version: 2.5
Name: bimdelta-core
Version: 0.5.0
Summary: Element-level diff engine for IFC building models
Project-URL: Repository, https://github.com/kaan36875/BIMDelta
License-Expression: MIT
Keywords: bim,diff,ifc,ifcopenshell,openbim
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Requires-Dist: ifcopenshell>=0.8.0
Requires-Dist: numpy>=1.26.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.6.0; extra == 'dev'
Description-Content-Type: text/markdown

# bimdelta-core

Element-level diff engine for IFC building models, built on [IfcOpenShell](https://ifcopenshell.org).

```python
from bimdelta_core import load_settings, run_diff

result = run_diff("rev-a.ifc", "rev-a.ifc", "rev-b.ifc", "rev-b.ifc", load_settings())
print(result.summary.added, result.summary.removed, result.summary.modified)
print(result.model_dump_json(indent=2))
```

Elements are matched by `GlobalId`, then by the authoring tool's element id in `IfcElement.Tag`,
then by class, name, storey and placement. Matched pairs are compared on properties and
quantities, placement, type, storey and a geometry signature (bounding box and volume).

A noise filter keeps export artefacts out of the result; see
[docs/noise-filter.md](https://github.com/kaan36875/BIMDelta/blob/main/docs/noise-filter.md).

Part of [BIMDelta](https://github.com/kaan36875/BIMDelta). MIT licensed.
