Metadata-Version: 2.4
Name: bim2rdf
Version: 2025.4.1780
Summary: Convert BIM data to RDF models
Author-email: Majid alDosari <majid.aldosari@pnnl.gov>, Trisha Gupta <trisha.gupta@pnnl.gov>
License-File: LICENSE.md
Requires-Python: ==3.11.9
Requires-Dist: bim2rdf-mapping
Requires-Dist: bim2rdf-rules
Requires-Dist: bim2rdf-speckle
Requires-Dist: dynaconf
Requires-Dist: rdflib
Provides-Extra: cli
Requires-Dist: fire; extra == 'cli'
Requires-Dist: pyyaml; extra == 'cli'
Provides-Extra: spklauto
Requires-Dist: bim2rdf-spklauto; extra == 'spklauto'
Description-Content-Type: text/markdown

# BIM2RDF

Functionality used to convert building models in Speckle to ASHRAE S223 semantic models.
The operationalized version will be on [Speckle Automate](https://www.speckle.systems/product/automate).

Each top-level directory is a 'component' of the project.
Furthermore, the following dependencies were extracted as
generic stand-alone libraries:
[PyTQSHACL](https://github.com/pnnl/pytqshacl/),
[RDF-Engine](https://github.com/pnnl/rdf-engine/),
[JSON2RDF](https://github.com/pnnl/json2rdf/).


# Development

## Setup

```bash
> uv sync --all-packages
> uv run pre-commit install
# activate environment
> .venv/Scripts/activate
```
Make a [`.secrets.toml`](./.secrets.toml) file with
```toml
[speckle]
token = "yourtoken"
```

## Process

Follow [test](./test/) [instructions](./test/README.md).

# Usage

## [CLI](./src/bim2rdf/cli.py)
```bash
bim2rdf --help
```

## [Function](./src/bim2rdf/engine.py)

```python
from bim2rdf import Run
# initialize with a db
from pyoxigraph import Store
db = Store()
r = Run(db)
# execute with desired options
help(Run.run)
```

In development, a `cache` directory will be created in the working directory
to save expensive expensive processing in general
but mainly to save Speckle query results.
Thus, the user must clear the cache to be able to access new data.
