Code Interpretation

How RestRoomer interprets ADA-style rules, stricter California workflows, and user overrides.

๐Ÿ“˜ What this page is

This page explains how RestRoomer currently interprets accessibility and restroom layout rules in the ADA solver/checker. It is a practical implementation summary of what the software does today.

RestRoomer is a design aid and validation helper. It does not replace professional judgment, plan review, or project-specific code verification by qualified professionals.

Related pages: FAQ, Docs, Support.

โ™ฟ ADA-first baseline

The ADA solver (`RRCloud_WC_Rev1`) is built around an ADA-first geometric interpretation that includes:

  • WC body and corner-anchored WC clearance logic
  • Turning-space checks (60-inch turning circle representation)
  • Door clearance handling by door type and swing behavior
  • Grab-bar feasibility constraints tied to corner/wall conditions
  • Fixture-body and clearance collision checks during solve and check workflows
๐Ÿ›๏ธ California-leaning interpretation

Where applicable, RestRoomer leans slightly more restrictive so generated layouts are safer for early design screening. A key example is WC centerline behavior:

  • Default ADA-style range uses 16-18 inches from side wall
  • California workflows often require tighter interpretation around 18 inches
  • RestRoomer supports this by allowing the centerline range to be narrowed by user override

In other words, the system can be run in an ADA baseline mode while still allowing a California-style stricter stance when your project needs it.

๐ŸŽ›๏ธ User-overridable code assumptions

Several assumptions are intentionally configurable so teams can adapt to local interpretation or internal standards. Supported JSON-level overrides include:

  • toiletCenterlineMinIn / toiletCenterlineMaxIn
  • toiletCornerAngleMinDeg / toiletCornerAngleMaxDeg
  • clearanceInRoomRequired to enforce stricter in-room clearance inclusion
  • EdgePlaceable to limit which wall segments can host fixtures
  • InteriorLoops to represent islands/columns and keep collision checks realistic

These controls are available in both solve and ADA-check paths, so interpretation can stay consistent between generation and validation.

๐Ÿšช Door interpretation model

Door clearances are interpreted with type-specific logic. The ADA solver has distinct handling for common cases such as swing, pocket, opening, sliding, barn, bifold, and pivot-style behaviors.

This lets the engine reason about different entry conditions instead of applying a single generic door-clearance rule to every door type.

๐Ÿงฑ Room geometry and strictness

RestRoomer supports complex room boundaries and interior obstructions. Depending on settings and context, the solver can run with strict in-room assumptions or a modest tolerance strategy for practical geometry edge cases.

For difficult models, geometry simplification and placeable-edge controls can materially improve result quality and predictability.

โœ… Solve vs Check interpretation

Solve generates candidate layouts from room/door geometry and constraints.

Check validates user-placed layouts and can infill missing elements while applying the same core interpretation stack (including advanced overrides and geometric constraints).

This is why check mode is useful for QA/QC on partially or fully manual layouts.

โš™๏ธ Advanced runtime controls

The solver also supports advanced runtime tuning keys such as:

  • advMaxLayouts, advMaxSeconds
  • advMaxToilets, advSinksPerToilet
  • advSinkSimThreshold, advGrid

These are performance/search-behavior controls, not direct code requirements, but they can affect how broadly the engine explores feasible options.

๐Ÿงญ Recommended workflow for stricter jurisdictions
  • Start with ADA mode and generate candidate solutions
  • Apply stricter local assumptions (for example California-leaning centerline settings)
  • Run check mode on the selected layout to verify fit against your interpretation inputs
  • Finalize through normal internal QA and local authority review process

Need help selecting override values? Reach out on /support.