Skip to content

Ops 3dbag

Compact real-geometry 3DBAG Building hierarchy with attributes, multiple LoDs, and semantic surfaces. Targets common object-model operations without requiring the full workload tile.

Case

  • id: ops_3dbag
  • layer: operation
  • family: operation_kernel
  • artifact_mode: acquired
  • source_kind: real-geometry
  • representation: cityjson
  • path: cases/operations/ops_3dbag

Files

  • acquisition: cases/operations/ops_3dbag/acquisition.json

Source JSON

case.json

{
  "artifact_mode": "acquired",
  "artifact_paths": {
    "acquisition": "cases/operations/ops_3dbag/acquisition.json"
  },
  "assertions": [
    "bounding_box_stable",
    "hierarchy_traversal_complete",
    "attribute_payload_preserved",
    "geometry_preserved",
    "semantic_surfaces_preserved",
    "boundary_to_semantics_mapping_stable"
  ],
  "cityjson_version": "2.0",
  "description": "Compact real-geometry 3DBAG Building hierarchy with attributes, multiple LoDs, and semantic surfaces. Targets common object-model operations without requiring the full workload tile.",
  "family": "operation_kernel",
  "geometry_kind": "real-preserved",
  "id": "ops_3dbag",
  "layer": "operation",
  "representation": "cityjson",
  "source_kind": "real-geometry",
  "version": 2
}

invariants.json

{
  "checks": [
    {
      "description": "Bounding-box results remain stable across traversal.",
      "id": "bounding_box_stable"
    },
    {
      "description": "Hierarchy traversal visits the full reachable object graph.",
      "id": "hierarchy_traversal_complete"
    },
    {
      "description": "Attribute payloads survive the operation kernel.",
      "id": "attribute_payload_preserved"
    },
    {
      "description": "Geometry stays intact while object-model operations are processed.",
      "id": "geometry_preserved"
    },
    {
      "description": "Semantic surfaces remain attached to their geometry.",
      "id": "semantic_surfaces_preserved"
    },
    {
      "description": "Boundary-to-semantics mapping remains stable.",
      "id": "boundary_to_semantics_mapping_stable"
    }
  ],
  "id": "ops_3dbag",
  "kind": "positive",
  "version": 1
}

acquisition.json

{
  "dataset": "3DBAG",
  "id": "ops_3dbag",
  "license": "Use the upstream 3DBAG license terms until the corpus release metadata is published.",
  "notes": "Compact real-geometry 3DBAG hierarchy for common object-model operations. The shared acquisition script deterministically subsets one Building and its BuildingPart from the published raw tile.",
  "outputs": [
    {
      "byte_size": null,
      "checksum": null,
      "derivation": "subset",
      "derived_from": [
        "artifacts/acquired/3dbag/v20250903/10-758-50.city.json"
      ],
      "path": "artifacts/acquired/3dbag/v20250903/ops_3dbag.city.json",
      "producer": "cjio",
      "published": true,
      "representation": "cityjson",
      "validation_role": "canonical"
    }
  ],
  "owner": "cjindex",
  "preprocessing": [
    "Run the shared 3DBAG acquisition script in cityjson-corpus.",
    "Subset Building NL.IMBAG.Pand.0928100000037540 and its hierarchy from the published raw CityJSON tile with cjio."
  ],
  "reference": "Use `just acquire-3dbag` in cityjson-corpus to materialize the compact operation fixture.",
  "selector": "Pinned 3DBAG Building hierarchy rooted at NL.IMBAG.Pand.0928100000037540.",
  "status": "published",
  "upstream_url": "https://data.3dbag.nl/v20250903/",
  "upstream_version": "2025.09.03",
  "version": 2
}