Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CityGML LCA ADE (Life Cycle Assessment Application Domain Extension)

CityGML Energy ADE Release License

An Application Domain Extension (ADE) for CityGML 2.0 extending Energy ADE 3.0 (beta 8) that introduces Life Cycle Assessment (LCA) specific elements and attributes to facilitate the inclusion of environmental data within city models according to EN 15978.

Overview

The CityGML LCA ADE 1.0 extends CityGML models with environmental parameters. Rather than embedding impact matrices inside spatial models, the LCA ADE provides references pointing directly to external EPD databases (such as Sweden's Boverket Klimatdatabas or Germany's Ökobaudat), sets reference service lives for component replacement cycles, and establishes a uniform reference study period for urban scenarios.

UML

Authors & Citation

Developed at Chalmers University of Technology (Department of Architecture and Civil Engineering):

  • Alexander Hollberg
  • Sanjay Somanath
  • Haitham Abu Ghaida
  • Jorge Gil

Technical Specifications

Namespaces & Dependencies

Setting Value
Target Namespace URI http://sb.chalmers.se/ade/lca/1.0
Preferred Prefix lca
Host Standard CityGML Core 2.0
Extension Dependency Energy ADE 3.0 (beta 8)
Version 1.0 beta
Release Date 2026-08

Key Features

Code List: EPDSourceValue

  • Description: Closed enumeration of supported Environmental Product Declaration (EPD) databases.
  • Supported Values:
    • boverket: Boverket Klimatdatabas (Sweden)
    • oekobaudat: Ökobaudat EPD database (Germany / EU)

Data Type: LCAEnvironmentalReference

  • Description: Reference to an EPD record in an external database.
  • Content: Database-specific record ID:
    • Boverket: 10-digit integer ResourceId (e.g., "6000000029")
    • Ökobaudat: UUID (e.g., "fe91b985-60da-...")
  • Attribute: source (optional) to identify the database using the EPDSourceValue codelist.

Class: LCAScenario

  • Description: Top-level LCA scenario city object.
  • Element: <lca:LCAScenario>
  • Properties:
    • referenceStudyPeriod: System boundary horizon in years (uom="a"), applied uniformly to every building in the city model for replacement cycle calculations: $$\text{replacements} = \left\lceil \frac{\text{referenceStudyPeriod}}{\text{referenceServiceLife}} \right\rceil - 1$$

ADE Hooks & Coverage

environmentalId

  • Description: EPD database record identifier for this object used to resolve environmental impact factors.
  • Coverage: core:_CityObject subclasses via formal hook:
    • nrg3:AbstractDevice subclasses (12 concrete types)
    • nrg3:AbstractMaterial subclasses (e.g. SolidMaterial, Gas)
    • nrg3:AbstractLayeredConstruction subclasses
    • nrg3:AbstractResource subclasses
    • bldg:BuildingInstallation
    • bldg:IntBuildingInstallation
  • Element: <lca:environmentalId>

referenceServiceLife

  • Description: Reference Service Life (RSL) in years (uom="a") driving module B4 replacement cycle calculations in EN 15978 LCA.
  • Coverage: Same as environmentalId; omitted for operational resource flows (AbstractResource subclasses) which have no service life concept.
  • Element: <lca:referenceServiceLife>

Class Coverage Matrix

Category Target Class Added Parameter(s) Attachment Mechanism EN 15978 Scope
General LCAScenario (new) referenceStudyPeriod Top-Level Object Assessment Horizon (B/C)
Embodied AbstractDevice (12 types) environmentalId, referenceServiceLife Formal Hook [F] A1–A5, B4, C1–C4, D
Embodied BuildingInstallation environmentalId, referenceServiceLife Formal Hook [F] A1–A5, B4, C1–C4, D
Embodied IntBuildingInstallation environmentalId, referenceServiceLife Formal Hook [F] A1–A5, B4, C1–C4, D
Embodied AbstractLayeredConstruction subclasses environmentalId, referenceServiceLife Formal Hook [F] A1–A5, B4, C1–C4, D
Embodied AbstractMaterial subclasses (e.g. SolidMaterial, Gas) environmentalId, referenceServiceLife Formal Hook [F] A1–A5, B4, C1–C4, D
Operational AbstractResource subclasses environmentalId Formal Hook [F] B6, B7

Energy ADE hook

For subclasses of core:AbstractCityObjectType (e.g., nrg3:AbstractDevice, bldg:BuildingInstallation, bldg:IntBuildingInstallation), LCA properties substitute the native core:_GenericApplicationPropertyOfCityObject placeholder.

Element Ordering Requirement (xs:sequence): Because core:AbstractCityObjectType uses xs:sequence, the _GenericApplicationPropertyOfCityObject slot falls after core-level properties (creationDate, terminationDate, ...) and before any Energy ADE-specific child elements.

Correct element order inside an nrg3:AbstractDevice element:

  1. gml:description, gml:name, ...
  2. core:creationDate, ...
  3. <lca:environmentalId> $\leftarrow$ substitution group slot
  4. <lca:referenceServiceLife> $\leftarrow$ substitution group slot
  5. nrg3:model, nrg3:deviceOperation, ...

Repository Structure

├── docs/
│   └── UML/
│       └── CityGML_LCA_ADE_v1.pdf    # Enterprise Architect UML diagrams
├── models/                           # Local working directory (gitignored)
│   ├── <raw-energy-ade-model>.gml   # Downloaded input model from Energy ADE sources
│   └── <lca-model-output>.gml        # Output generated by inject_lca.py
├── scripts/
│   ├── databases/
│   │   ├── boverket.py              # Boverket API / JSON resolution driver
│   │   └── oekobaudat.py            # Ökobaudat API / JSON resolution driver
│   ├── calculate_lca.py             # EN 15978 LCA calculation engine
│   └── inject_lca.py                # Sequence-aware GML property injector
├── xsd/
│   ├── codelists/
│   │   └── EPDSourceValue.xml       # GML CodeList dictionary (boverket, oekobaudat)
│   ├── LCA_ADE_1.0.xsd              # XML Schema Definition
│   └── ShapeChangeConfiguration.xml # ShapeChange target configuration
└── README.md


Explore the ADE

To inspect and explore CityGML/Energy ADE/LCA ADE models interactively, use the CityGML Browser app:

Usage Workflow

Model files are intentionally excluded from version control. Download a raw Energy ADE model locally, place it in models/, and use the workflow below.

To use this ADE in your CityGML project:

  1. Download a Raw Energy ADE Model: Get a source model from a public Energy ADE dataset/repository and store it locally, for example:
  • models/raw-energy-ade-model.gml
  1. Inject LCA Properties: Use the sequence-aware script to inject LCAScenario and LCA properties into a new output file:
python scripts/inject_lca.py models/raw-energy-ade-model.gml models/model-with-lca.gml
  1. Calculate Lifecycle Impact: Run the calculation engine to resolve external EPD identifiers against database records and compute EN 15978 impacts:
PYTHONPATH=. python scripts/calculate_lca.py models/model-with-lca.gml
  1. Validate Schema Compliance: Ensure LCA_ADE_1.0.xsd and dependencies (CityGML Core and Energy ADE) are included, and validate using citygml-tools:
citygml-tools validate --schema xsd/LCA_ADE_1.0.xsd models/model-with-lca.gml

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages