Durability cover
How ACS computes AS 3600 code-based cover from saved design state, the loading window between an edit and the refetch, and what each refusal means.
Overview
The Code-based cover mode on the Cover panel runs AS 3600 Cl. 4.10.1 to derive the minimum required cover from the saved design-option row. Every input — exposure class, concrete grade (), aggregate size, member type, FRL, and fire method — is read from the persisted section; the maximum bar diameter is derived from the drawn bars rather than defaulted. Nothing is accepted from an unsaved live-panel field.
Save-then-compute cycle
Cover is computed off saved state, not unsaved edits. When an engineer changes an input in the panel — for example, changing the exposure class from A2 to C2 — the new value does not immediately change the displayed cover. The sequence is:
- Edit — the engineer changes an input in the Cover panel.
- Autosave arms — the debounced autosave timer starts (typically ~1 s).
- Save in flight — the autosave PUT reaches the server.
- Save lands — the server confirms the new state.
- Refetch — the cover query is invalidated and re-runs against the newly saved row.
- Cover updates — the panel shows the cover for the new input.
The panel displays a “Resolving cover…” state during the window between step 1 and step 6. This window is longer than the old ~500 ms compute debounce because it includes the full autosave round-trip, but it removes the pre-save-and-compute race that caused the Cover panel and the PDF report to disagree for a short time after each edit.
isDurabilityCoverStale signal
The isDurabilityCoverStale signal is true in any of three states:
| State | Description |
|---|---|
| Timer armed | The engineer made an edit and the debounce window has not yet expired — the autosave has not been sent. |
| Save in flight | The autosave PUT is waiting for a server response. |
| Autosave blocked | Every autosave in the session has been blocked by a geometry refusal: the section outline is invalid and the PUT cannot complete, so the cover query is never invalidated. |
While stale, the panel shows the loading state and the previous (pre-edit) cover value is not displayed as settled. As soon as isDurabilityCoverStale clears and the refetch completes, the panel shows the updated cover.
Refusals render in the panel
Refusals from the cover route — for example, when the exposure class or aggregate size has not been saved, or when AS 3600 Section 5 does not tabulate an axis distance for the member’s geometry and FRL — render through the same failureReason slot that a resolved: false result already used. They are never shown as a raw toast.
This means an engineer who picks an exposure class while an autosave is in flight does not see the refusal flash and disappear: the panel holds the previous value until the save lands and the refetch confirms whether the new selection is valid.
Required inputs
The cover route refuses by name when any of the following is not saved on the design option. The refusal code field is stable for client branching.
| Missing input | Code | Notes |
|---|---|---|
| Exposure class | exposure_class_not_set | AS 3600 Cl. 4.10.1 cover is an exposure-class calculation; there is no defensible substitute. |
| Concrete grade | concrete_grade_not_set | Needed for the Cl. 4.10.3.2 class-minimum check. |
| Maximum aggregate size | max_aggregate_size_not_set | Sets the Cl. 4.10.2 placement floor. Defaulting to 20 mm nominal silently moves the cover for any non-20 mm section. |
| Member type | member_type_not_set | Needed to look up the AS 3600 Section 5 axis distance. |
AS 3600 Section 5 refusals
When a fire resistance level (FRL) is set and the fire method is as3600-section5, the route attempts to resolve the Cl. 4.10.1 fire term from the Section 5 axis-distance tables. A refusal is returned (with resolved: false and a failureReason) rather than a silently-substituted cover when:
- The member type + FRL + geometry combination is not tabulated (for example, a column at FRL 240 whose minimum dimension falls below the table’s range).
- A four-side-exposed beam is not approximately rectangular (Cl. 5.4.2 scope).
- An upper-surface-exposed slab cannot use the beam clause.
The Section 5 lookup also needs the member’s true web width, which ACS measures with the same minimum-solid-width scan the shear check uses. A void ring lying wholly or partly outside the outline has no defined width to measure, so the route refuses with a 400 carrying void_outside_outline — the same code and canvas banner every other analysis raises for that geometry (see Geometry) — rather than scoring the member on its bounding width. Move the void inside the outline, or delete it, and the cover recomputes.
The failureReason string names the specific constraint, including the member’s own dimensions against the table’s required ones. Increase the section dimensions, reduce the fire-resistance period, or switch to a calculation method (isotherm500 or advanced-fibre) to continue.
Shielded edges
An edge listed in FireExposure.UnexposedElements drops the fire term for that edge. A fully shielded section (every edge unexposed) runs no Section 5 lookup at all — the fire cover for it is zero — and does not generate a refusal even if the member and FRL combination would be untabulated on an exposed section.
Governing terms
The resolved cover is the greatest of three AS 3600 Cl. 4.10.1 terms:
| Term | Clause | Governs when |
|---|---|---|
| Durability | Cl. 4.10.3.2 (Amd 2) | Exposure class drives a high corrosion cover requirement |
| Placement | Cl. 4.10.2 (Amd 2) | Bar or aggregate size sets a tight minimum from placing geometry |
| Fire | Cl. 4.10.1 (AS 3600 Section 5 route) | FRL requires a large axis distance that translates to a deep cover |
For sections with any fire-exposed edge, the panel shows a per-edge breakdown: exposed edges carry the full Cl. 4.10.1 greatest-of, while shielded edges drop the fire term and resolve on the durability and placement terms alone. The governing term for each edge is identified in the breakdown.
Related pages
- Materials — selecting the design code and concrete grade
- Fire design — setting member type, FRL, and fire exposure
- API errors — machine-readable codes for all cover refusals