Skip to content

Proposal: comprehensive import/export format support (roadmap + library choices) #17

Description

@DutchSailor

Proposal — Broad import/export format support

This is a research-backed proposal for the file/data formats Open Planner Studio should aim to support, prioritised by real-world usage in the Dutch (and international) construction, infrastructure and civil-engineering (GWW) markets, together with concrete open-source library choices per format.

The goal is to make Open Planner Studio the neutral hub between the tools schedulers, contractors and public clients (Rijkswaterstaat, ProRail) are actually using today.

TL;DR — the "6+2" priority list

These six formats cover >80% of the Dutch construction / infra / GWW market and much of the international scheduling world:

# Format Extension Where it comes from Suggested library
1 MS Project MSPDI .xml MS Project, KYP export, Metacom/4PS ERP exports, RWS deliverables MPXJ
2 MS Project binary .mpp MS Project (still dominant NL) MPXJ (only mature OSS option)
3 Primavera XER .xer P6 worldwide + large NL infra JVs (Shell, TenneT, RWS-JVs) MPXJ or xer-reader (pure-Python fallback)
4 Primavera PMXML .xml P6 newer / enterprise exchange MPXJ
5 Asta Powerproject .pp Asta widely used at NL contractors + KYP import MPXJ (the only maintained OSS parser)
6 IFC 4.3 + IfcWorkSchedule .ifc Synchro, BIM 4D, RWS/ProRail COINS containers IfcOpenShell

High-value USPs (phase 2):

# Format / API Why
7 KYP Project REST API KYP is the de facto NL construction planning tool (Dura Vermeer, BAM, TBI/Koopmans, Aan de Stegge, Nijhuis). No public export — direct API integration is a unique differentiator.
8 iCalendar (.ics) Deadlines / milestones sync to calendar apps. Trivial to implement, high user value.

Why these formats — market evidence

  • KYP Project natively imports .xml (MSPDI), .mpp, .pp — supporting those three means Open Planner Studio speaks KYP's language.
  • Rijkswaterstaat and ProRail typically receive schedules as MSPDI XML or PDF-Gantt; larger infra JVs use Primavera XER/PMXML.
  • Metacom (VanMeijel), 4PS Construct (Dynamics 365 BC), Ibis (Aceve) all export to .mpp/.xml — no need for ERP-specific adapters.
  • PlanRadar (snagging with schedule import) reads .mpp, .xml (MSPDI), .pp, .xer — same six-format core.
  • Deltek Acumen Fuse / Cobra / Open Plan / Safran / ARES PRISM / Hexagon EcoSys — all read/write XER + MSPDI as lingua franca, so the same core covers enterprise too.
  • BCF 3.0 and IFC 4.3 IfcWorkSchedule are the buildingSMART-blessed neutral hub used in RWS ILS Uitvoering and CROW BIM basis-ILS.

Deliberately out of scope for MVP

To keep the surface manageable, these should NOT be built for the MVP:

  • Aspose.Tasks Cloud SDK — cloud-only, proprietary, sends project data to Aspose servers (privacy issue for NL users).
  • COINS 2.0 parser — Dutch niche; container = ZIP + RDF/OWL, planning is not a first-class citizen. Wait for demand.
  • VISI — SOAP messaging standard managed by CROW; no CPM payload. Not a scheduling format.
  • Tilos .tlp — proprietary Trimble binary/XML; no public spec, no OSS parser. Route: ask users to export MSPDI from Tilos.
  • NLCS — 2D CAD layer standard, no scheduling data.
  • ERP-specific connectors (Metacom, 4PS, Ibis) — those tools already export to .mpp/.xml, no separate adapter needed.
  • Snagging apps (Ed Controls, BouwApp, Homigo) — wrong layer.

The MPXJ multiplier

One dependency, many formats. MPXJ (LGPL-2.1, actively maintained by Jon Iles for 20+ years, v16.5.0 released July 2026) reads:

MPX, MPP (all versions), MSPDI, MPD, Planner, Primavera PMXML, Primavera XER, P3, SureTrak, Asta Powerproject .pp (v8+), Asta Easyplan, Phoenix, Fasttrack, GanttProject, TurboProject, ConceptDraw PROJECT, Synchro, Gantt Designer, SDEF, Sage 100 Contractor, Project Commander, Deltek Open Plan BK3, Edraw Project EDPX.

Writes: MPX, MSPDI, PMXML, XER, Planner, SDEF.

Available in Java (native), .NET via IKVM (MPXJ.Net), Python wrapper (PyPI mpxj), Ruby.

Known limitations: cannot read password-encrypted MPP; cannot read Powerproject v7 or older .pp; cannot write MPP (writing MPP requires MS Project COM).

For IFC + 4D — IfcOpenShell

IfcOpenShell (LGPL/GPL, 2.6k+ stars, daily commits) covers IfcWorkPlan / IfcWorkSchedule / IfcTask / IfcTaskTime / IfcRelSequence via ifcopenshell.api.sequence.

Its ifc4d submodule can already import from and export to P6 XER, Asta PP, and MS Project — bridging directly to the same six-format core.

Sample file with tasks: construction_scheduling_task.ifc.

Architecture suggestion

A neutral internal model based on IFC 4.3 IfcWorkSchedule (Task, Sequence, Resource, Calendar, WBS) with adapters per source format:

+---------------------------------------------+
|  Open Planner Studio UI                     |
+---------------------------------------------+
                    |
+---------------------------------------------+
|  Canonical model (IfcWorkSchedule-superset) |
+---------------------------------------------+
     ^              ^               ^
     |              |               |
+---------+  +---------------+  +----------+
|  MPXJ   |  | IfcOpenShell  |  | Custom   |
| adapter |  |  + ifc4d      |  | adapters |
+---------+  +---------------+  +----------+
| MSPDI   |  | IFC 4.3       |  | iCal     |
| XER     |  | IfcWork...    |  | CSV/XLSX |
| PMXML   |  +---------------+  | KYP API  |
| MPP     |                     | BCF 3.0  |
| Asta PP |                     +----------+
| ...     |
+---------+

Each source has its own adapter that maps to the canonical model. UI works against canonical model only. Adding a format = new adapter, no UI changes. Export is symmetric via the same adapter pattern.

Licensing note

MPXJ (LGPL-2.1) and IfcOpenShell (LGPL / GPL dual) are both suitable for a commercial closed-source product provided they are dynamically linked. Running them as a separate sidecar process (JVM sidecar for MPXJ, Python sidecar for IfcOpenShell) naturally satisfies this.

Suggested roadmap

Phase 1 — MVP (~2–3 weeks)

  • Canonical model based on IfcWorkSchedule.
  • MPXJ integration: MSPDI + XER + MPP + Asta PP + PMXML adapters (round-trip where possible).
  • CSV/Excel import with column-mapping wizard.
  • iCal export for milestones.

Phase 2 — NL / BIM compliance (~4–6 weeks)

  • IFC 4.3 IfcWorkSchedule read/write via IfcOpenShell.
  • BCF 3.0 (bcfzip) read/write (via IfcOpenShell bcf module or buildingSMART/BCF-XML schemas).
  • KYP Project REST API integration (requires KYP dev-access).

Phase 3 — Niche / on-demand

  • Tilos MSPDI-export bridge (whenever a Tilos customer arrives).
  • Deltek Open Plan BK3 (MPXJ handles it — near-free).
  • CUF-XML / TRADXML (Dutch calculation-to-planning bridge) if a calc-integration USP is pursued.

Test data — start with

References


Happy to help refine the roadmap, draft adapter interfaces, or contribute a first MPXJ-based MSPDI adapter as a PR if the maintainers agree with the direction.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions