Skip to main content

Open-source computational logic engine for global building codes and standards.

Project description

aeclib

Open-source automated code compliance building codes and standards.

aeclib translates building code provisions into executable and testable logic.

Installation

pip install aeclib

Intent

The goal of aeclib is to provide a unified "Logic Layer" for the AEC industry to support automated compliance and computational design.

Usage

aeclib is designed as a Stateless Logic Layer. It provides the atomic building blocks of architectural compliance without dictating a specific data schema.

Atomic Logic

Each function in aeclib maps to a specific engineering or code requirement. You are responsible for mapping your own data (JSON, BIM, or Database) to the function's parameters.

Compositional Compliance

The library is designed to be composed into your own application logic. Below is an example of how a user might bring their own JSON design data and map it to a custom Python class to run a specific chapter's compliance check:

{
  "space_id": "RM-101",
  "function_type": "business",
  "gross_area": 1500.0,
  "net_area": 1200.0,
  "design_occupancy_count": 12
}
from aeclib.occupancy import validate_occupant_load_without_fixed_seating, validate_increased_occupant_load

class OccupancyValidator:
    def check_space_occupancy(self, data: dict):
        # 1. Check required minimum occupant load (Section 1004.5)
        is_load_valid = validate_occupant_load_without_fixed_seating(
            function_type=data["function_type"],
            gross_area=data["gross_area"],
            net_area=data["net_area"],
            design_occupancy_count=data["design_occupancy_count"]
        )

        # 2. Check maximum density limit (Section 1004.5.1)
        is_density_valid = validate_increased_occupant_load(
            area=data["gross_area"],
            occupant_count=data["design_occupancy_count"]
        )

        return is_load_valid and is_density_valid

Expected Output

When a design fact fails to comply, the library will return FAIL and log a detailed warning:

WARNING:aeclib:[FAIL] Design occupancy (35) is less than required minimum of 40 for educational_classroom (net area: 800.0, factor: 20).

When a design is compliant, the function returns PASS.

License

Licensed under the Apache License 2.0.

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

aeclib-0.2.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

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

aeclib-0.2.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file aeclib-0.2.0.tar.gz.

File metadata

  • Download URL: aeclib-0.2.0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for aeclib-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d2a1b5be13e93fc9326a5c332d92ec34dfe06973345deccba56377b724127a3f
MD5 c0bc192a7c5f1759b5fd3bf3c1faec5f
BLAKE2b-256 97cf4e5ff030a82c2f522d191b8661338033297ccd237ef1002418afad5ccdb7

See more details on using hashes here.

File details

Details for the file aeclib-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: aeclib-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for aeclib-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a534436d60d569954115d7d99895d61b54d6aee84f0f805a1f3045ada77c065c
MD5 4f57c7d465dacc67abd9634fcd53a01c
BLAKE2b-256 fb6540065527ea9028cb6ce1bb89ae4ee3166536a8eb3164b77951324b8afc69

See more details on using hashes here.

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