Study notes for Ian Stroud, Boundary Representation Modelling Techniques (Springer, 2006).

Input/output is where modelling systems meet reality: persistence, interoperability, and long-term maintainability.

1) Writing to disk: persistence is a design decision

A modeller must decide:

  • what constitutes the “truth” (B-Rep only? plus history? plus attributes?)
  • how to store topological graphs (IDs, references, ownership)
  • how to store geometry (analytic parameters, NURBS, trims, p-curves)
  • how to store product modelling information (constraints, assemblies, metadata)

2) Reading from disk and backward compatibility

Reading is harder than writing because:

  • files live for years
  • schemas evolve
  • bugs in old versions become data you must accept

This requires:

  • versioning
  • upgrade pipelines
  • robust validation + healing at load time

3) Communication with other modellers and STEP

Interoperability introduces:

  • representation mismatch (e.g., different trim conventions)
  • tolerance mismatch
  • topology naming mismatch
  • attribute mapping issues

STEP is discussed as an exchange route, but the deeper point is: exchange formats force you to clearly define what your kernel means by face/edge/loop, surface parameterization, and tolerances.

4) Printing models

“Printing” is not just output; it tests your ability to generate:

  • stable drawing edges / silhouettes
  • hidden line views
  • sectioned views
  • annotation placement

Chapter outline (from the book)

Major sections

  • 11.1 Writing To Disc
  • 11.2 Reading From Disc
  • 11.3 Reading Old Discfiles
  • 11.4 Examples
  • 11.6 Communication With Other Modellers
  • 11.7 Step

Selected subsections

  • 11.2 Reading from disc
  • 11.3 Reading old discfiles
  • 11.4 Examples

Implementation checklist

  • Add explicit file format versioning.
  • Store stable IDs and references (with integrity checks).
  • Implement:
    • Load → Validate → Heal → Upgrade → Save
  • Separate “core geometry/topology” from “derived caches” (meshes, acceleration structures).
  • Provide export/import test suites with known-good reference models.

Persistence tip: store intent when possible

If you only store final B-Rep, you lose:

  • parametric definitions
  • feature history
  • constraints
  • provenance/mapping

If you store both:

  • you gain editability
  • but you must support upgrade paths and regeneration consistency

Practical exercises

  • Add a versioned schema section to your file format and implement a “migration” stub (even if it does nothing yet).