Skip to main content
Challenge

Build a CityJSON to IFC Conversion and Schedule Dispatcher

Parse municipal CityJSON models to generate Industry Foundation Classes assets via ifccityjson and ifccsv utilities. Audit geometric conversions and export structured procurement quantity schedules for contractor coordination.

EngineeringHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Parse municipal CityJSON models to generate Industry Foundation Classes assets via ifccityjson and ifccsv utilities. Audit geometric conversions and export structured procurement quantity schedules for contractor coordination.

Municipal BIM Coordinator

Ingest CityJSON 2.0 objects and validate mandatory transform and CityObjects structures.

Execute ifccityjson conversion routines to synthesize IFC building elements and spatial hierarchies.

Extract component quantities and dimensional schedules into tabular form using ifccsv conventions.

Flag untranslated geometries or invalid property attributes and present a reviewable conversion summary.

Web dashboard showing CityJSON 3D previews, conversion progress logs, CSV quantity tables, and an interactive issue approval panel.

Download open CityJSON 2.0 sample models from the official CityJSON GitHub repository or generate synthetic CityJSON test files with bounding boxes. Starter examples below are synthetic. They are not downloaded records.

IfcOpenShell Utilizes IfcOpenShell's ifccityjson utility to translate CityJSON models into IFC and ifccsv to extract property and schedule summaries.

ray-serve, pydantic, fastapi. Ray Serve provides scalable microservice deployment to execute heavy IfcOpenShell CLI conversion pipelines asynchronously without blocking user requests. Local or hosted LLM capable of structured JSON analysis to interpret schema conversion anomalies and summarize takeoff schedules.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Validates CityJSON transform objects and verifies all CityObjects contain recognized types before translation.

Executes simulated ifccityjson conversion and creates standard IFC building entities for each input structure.

Generates an ifccsv-compliant tabular quantity takeoff matching component count and bounding dimensions.

Identifies missing parent references or unparseable LoD geometries as blocking coordination flags.

```json [ { "input": { "cityjson_document": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 0.01, 0.01, 0.01 ], "translate": [ 10000, 20000, 0 ] }, "CityObjects": { "BLD_001": { "type": "Building", "attributes": { "measuredHeight": 12.5, "roofType": "flat", "function": "Commercial" }, "geographicalExtent": [ 10000, 20000, 0, 10040, 20030, 12.5 ] } }, "vertices": [ [ 0, 0, 0 ], [ 4000, 0, 0 ], [ 4000, 3000, 0 ], [ 0, 3000, 0 ] ] }, "conversion_options": { "target_schema": "IFC4", "export_quantities_csv": true } }, "expected_output": { "conversion_status": "COMPLETED", "ifc_model_summary": { "schema": "IFC4", "entity_count": 1, "mapped_entities": [ { "source_id": "BLD_001", "ifc_type": "IfcBuilding", "spatial_dimensions": { "length_m": 40, "width_m": 30, "height_m": 12.5 } } ] }, "schedule_csv_rows": [ { "Identifier": "BLD_001", "IfcType": "IfcBuilding", "Function": "Commercial", "FootprintArea_m2": 1200, "Volume_m3": 15000 } ], "validation_flags": [] } }, { "input": { "cityjson_document": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 1, 1, 1 ], "translate": [ 0, 0, 0 ] }, "CityObjects": { "BLD_PART_09": { "type": "BuildingPart", "attributes": { "roofType": "gable" } } }, "vertices": [] }, "conversion_options": { "target_schema": "IFC4", "export_quantities_csv": true } }, "expected_output": { "conversion_status": "FAILED", "ifc_model_summary": { "schema": "IFC4", "entity_count": 0, "mapped_entities": [] }, "schedule_csv_rows": [], "validation_flags": [ { "object_id": "BLD_PART_09", "severity": "ERROR", "issue": "Missing mandatory 'parents' member for 2nd-level City Object 'BuildingPart'." }, { "object_id": "BLD_PART_09", "severity": "WARNING", "issue": "Missing geometry and geographicalExtent definitions." } ] } } ] ```

Ensures models are only previewed and simulated; no real-world municipal zoning registrations or construction changes are dispatched automatically. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Ensures models are only previewed and simulated; no real-world municipal zoning registrations or construction changes are dispatched automatically. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Validates CityJSON transform objects and verifies all CityObjects contain recognized types before translation. Executes simulated ifccityjson conversion and creates standard IFC building entities for each input structure. Generates an ifccsv-compliant tabular quantity takeoff matching component count and bounding dimensions. Identifies missing parent references or unparseable LoD geometries as blocking coordination flags.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Ingest CityJSON 2.0 objects and validate mandatory transform and CityObjects structures. Execute ifccityjson conversion routines to synthesize IFC building elements and spatial hierarchies. Extract component quantities and dimensional schedules into tabular form using ifccsv conventions. Flag untranslated geometries or invalid property attributes and present a reviewable conversion summary.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Validates CityJSON transform objects and verifies all CityObjects contain recognized types before translation. Executes simulated ifccityjson conversion and creates standard IFC building entities for each input structure. Generates an ifccsv-compliant tabular quantity takeoff matching component count and bounding dimensions. Identifies missing parent references or unparseable LoD geometries as blocking coordination flags.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Web dashboard showing CityJSON 3D previews, conversion progress logs, CSV quantity tables, and an interactive issue approval panel.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Ensures models are only previewed and simulated; no real-world municipal zoning registrations or construction changes are dispatched automatically.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Ingest CityJSON 2.0 objects and validate mandatory transform and CityObjects structures.

  • Execute ifccityjson conversion routines to synthesize IFC building elements and spatial hierarchies.

  • Extract component quantities and dimensional schedules into tabular form using ifccsv conventions.

  • Flag untranslated geometries or invalid property attributes and present a reviewable conversion summary.

Resources and assets

Reference links and supporting material

Dataset notes

Download open CityJSON 2.0 sample models from the official CityJSON GitHub repository or generate synthetic CityJSON test files with bounding boxes. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Ray Serve

Action Space in the agent workflow.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest CityJSON 2.0 objects and validate mandatory transform and CityObjects structures. Execute ifccityjso...
  • Validates CityJSON transform objects and verifies all CityObjects contain recognized types before translati...
  • Web dashboard showing CityJSON 3D previews, conversion progress logs, CSV quantity tables, and an interacti...
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 1 configured tool

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Action Space
  • Ray Serve · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build a CityJSON to IFC Conversion and Schedule Dispatcher