Skip to main content

NL2CAD Framework — IFC/DXF parsing, DIN 277 area calculation, Brandschutz, GAEB and NLP-to-CAD intent classification

Project description

nl2cad — Python Library für BIM/CAD-Verarbeitung

CI PyPI nl2cad-core Python 3.11+ License: MIT Website

Framework-agnostische Python-Library für IFC/DXF-Verarbeitung, DIN 277, Brandschutz und GAEB-Export.

achimdehnert.github.io/nl2cad — Landingpage (tenantfähig)

Packages

Package PyPI Beschreibung
nl2cad-core PyPI IFC/DXF Parser, Handler-Pipeline, Dataclasses
nl2cad-areas PyPI DIN 277 & WoFlV Flächenrechner
nl2cad-brandschutz PyPI Brandschutz-Analyse, ASR A2.3, DIN 4102
nl2cad-gaeb PyPI GAEB X81–X85 Generator
nl2cad-nlp PyPI Natural Language → CAD Intent & NL2DXF

Quick Start

pip install nl2cad-core nl2cad-areas nl2cad-brandschutz nl2cad-gaeb

Install-Optionen (Extras)

Das Meta-Paket iil-nl2cadfw bündelt alle Sub-Packages und bietet optionale Extras:

Extra Befehl Zieht zusätzlich
(keine) pip install iil-nl2cadfw Alle 5 Sub-Packages (core, areas, brandschutz, gaeb, nlp)
ifc pip install "iil-nl2cadfw[ifc]" nl2cad-core[ifc] — IFC-Toolchain (ifcopenshell)
nlp pip install "iil-nl2cadfw[nlp]" openai>=1.0 für NL2DXF/Intent
all pip install "iil-nl2cadfw[all]" IFC-Toolchain + openai
dev pip install "iil-nl2cadfw[dev]" pytest, pytest-asyncio, pytest-cov, ruff, mypy
from nl2cad.core.parsers import IFCParser
from nl2cad.areas.din277 import DIN277Calculator
from nl2cad.brandschutz.analyzer import BrandschutzAnalyzer
from nl2cad.gaeb.converter import IFCX83Converter

# IFC parsen
parser = IFCParser()
model = parser.parse("gebaeude.ifc")

# DIN 277 berechnen
calc = DIN277Calculator()
result = calc.calculate(model.rooms)
print(f"NUF: {result.nutzungsflaeche_m2:.1f} m²")

# Brandschutz analysieren
analyzer = BrandschutzAnalyzer()
bs_result = analyzer.analyze(model)
for mangel in bs_result.maengel:
    print(f"⚠️  {mangel.beschreibung}")

# GAEB X83 exportieren
converter = IFCX83Converter()
xml_bytes = converter.convert_to_x83(model, projekt_name="Neubau EFH")

Development

# Repo klonen
git clone https://github.com/achimdehnert/nl2cad.git
cd nl2cad

# uv installieren (falls nicht vorhanden)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Workspace setup (alle Packages als editable)
uv sync --all-packages

# Tests
uv run pytest

# Linting
uv run ruff check packages/
uv run mypy packages/

Für Coding Agents

→ Lies zuerst AGENTS.md — enthält alle Konventionen, Package-Grenzen und Workflows.

Architektur

nl2cad-nlp
    └── nl2cad-brandschutz ──┐
    └── nl2cad-gaeb          ├──→ nl2cad-core (ifcopenshell, ezdxf)
    └── nl2cad-areas         │
        └── nl2cad-core ─────┘

License

MIT — siehe LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iil_nl2cadfw-0.2.1.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iil_nl2cadfw-0.2.1-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file iil_nl2cadfw-0.2.1.tar.gz.

File metadata

  • Download URL: iil_nl2cadfw-0.2.1.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for iil_nl2cadfw-0.2.1.tar.gz
Algorithm Hash digest
SHA256 375c7b7e682ae8f9142ef5d98adf3490917850e07e31c3308747697307250d82
MD5 5a2330e35758266f3c57b8420c00907d
BLAKE2b-256 922e10fcaf39b62e4e605183792f4683ec134f58fd2ab4519cf2ae7c5ebaee82

See more details on using hashes here.

Provenance

The following attestation bundles were made for iil_nl2cadfw-0.2.1.tar.gz:

Publisher: publish.yml on achimdehnert/nl2cad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iil_nl2cadfw-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: iil_nl2cadfw-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for iil_nl2cadfw-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b21fbabe931d39d75ba6ce7998eafe3db0fc6c15d50c6f5df110fbcd5d0253ce
MD5 ff266c8cc69bf737c248f0935a7c5818
BLAKE2b-256 16f80d5d571af155f8041f823c7e115540d6623bb75a1e1f2ea8cb29070aa055

See more details on using hashes here.

Provenance

The following attestation bundles were made for iil_nl2cadfw-0.2.1-py3-none-any.whl:

Publisher: publish.yml on achimdehnert/nl2cad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page