Skip to content

Define project units and geometry tolerances in RFC 0003 #12

Description

@jonathanmcmichael

Outcome

Produce RFC 0003 defining the smallest project-wide units and tolerance policy needed for authored BIM parameters, kernel operations, fixtures, persistence, and IFC exchange.

Truth source

Use the existing metre-based Point3, WallGeometry, Truck tolerance behavior, Wall Lab values, and primary IFC unit concepts. Clearly separate observed current behavior from proposed policy.

Required questions

  • What is Rustit's canonical internal length unit?
  • Where is display-unit conversion allowed?
  • Which tolerances govern input validation, topology, tessellation, equality, and fixture assertions?
  • How are tolerances persisted and exchanged?
  • What happens when an adapter supplies different units or precision?
  • Which values are project policy versus kernel implementation details?

Invariants

IFC remains the semantic boundary; Truck remains replaceable; domain types must not depend on Truck constants.

Non-goals

Implementing unit conversion UI, surveying coordinate systems, georeferencing, or changing every numeric type.

Acceptance and evidence

  • follows the accepted RFC structure
  • includes at least two alternatives and consequences
  • maps the decision to Wall Lab and Truck graduation gates
  • names unresolved CRS/georeferencing work separately
  • contains no unsupported IFC conformance claim
  • Markdown links and cargo xtask verify pass

Dependencies: RFC 0001, RFC 0002, and #10.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-readyPortable work packet ready for human-and-AI implementationarea:geometryGeometry contracts, kernels, topology, and tolerancesarea:modelSemantic BIM model and validationhelp wantedExtra attention is neededkind:rfcArchitectural decision proposalreview:bimBIM or VDC domain review requestedreview:geometryCAD geometry or topology review requestedreview:rustRust API or implementation review requestedsize:sOne narrow crate slicestate:readyReady for a contributor to claim

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions