Materials
How GCS assigns materials to regions, what 'family-agnostic' means for the picker, and how composite (multi-material) sections produce stiffness-weighted (transformed) properties via the modular-ratio method.
Why this matters
Section properties split into two layers:
- Geometric properties depend only on the shape and its regions: area, centroid, second moments, plastic modulus, etc. GCS always reports these.
- Stiffness-weighted (transformed) properties depend on the material assigned to each region. They are reported only when more than one material is present — i.e., when the section is composite.
This page covers how the materials picker behaves in GCS (which is intentionally different from LGS and ACS), how to build composite sections, and the modular-ratio method that produces the transformed property set.
The material picker is family-agnostic
In LGS the picker only returns steel grades; in ACS the picker only returns concrete and rebar grades. In GCS the picker returns every material your project’s jurisdiction supports — steel, concrete, timber, masonry, any custom material your organisation has added.
This is deliberate. GCS is the platform’s general-purpose property calculator — it does not know what kind of structural element you are analysing. You might be checking the section properties of a custom timber composite, a steel-and-concrete sandwich plate, or a built-up section that does not correspond to any single material family. The picker therefore does not filter by family — every material valid in the project’s jurisdiction is listed, and the picker also includes any project-tier untagged materials your team has added directly to this project.
(This behaviour landed in F19 / #1518. Before that GCS accidentally filtered to a single family — which made composite sections awkward to assemble.)
Some materials in the catalogue exist but aren’t valid in your project’s jurisdiction under any standard your project resolves to — a European concrete grade in a US project, for example. Rather than silently leaving those out of the list with no explanation, the Geometry tab shows a collapsed summary note below the picker, naming the count, the jurisdiction, and the standards that are in play (for example, “2 catalogue materials not offered in US (ACI 318-19, AISI S100-16)”). Expand it to see each excluded material and the specific reason it doesn’t apply here.
The picker can also refuse, and says so under the dropdown rather than simply coming back empty. The case you are most likely to meet is a concrete material whose cannot be derived — see Section properties — Where the numbers come from. An empty dropdown and a refused one look identical, and only one of them means you must not pick anything, so the reason is always shown. When the picker refuses there is no list to explain, so the refusal appears on its own — the “not offered here” summary above is shown only when the picker did return a list.
Creating a material inline from an element’s picker (Create project material) assigns it to that element as soon as it is saved. For a concrete material with an there is a short extra step you do not see: the create response cannot carry — it is derived per project, and the create endpoint has no project — so the Geometry tab re-reads the material through the project-scoped picker before assigning it. If it cannot (an unusual case, and the same one that makes the picker refuse), the material is still created and the tab says so rather than closing the dialog and quietly leaving the element on its old material.
Material assignment per region
Each drawn element has a Material dropdown on its row in the Geometry tab. The dropdown is required for outline and inclusion roles; it is ignored for void roles (a hole has no material).
The active material (the dropdown at the top of the Geometry tab) is the default material applied to new elements as they are drawn. Switching the active material does not retroactively change existing elements — that has to be done per row to avoid surprising bulk changes.
Inline material creation
If the right material does not yet exist in your project, the per-element picker has a Create project material action. This opens the standard material dialog with the family pre-selected based on the element’s current material (or steel as a safe default for new elements). The new material is added at project tier — it lives in this project only and is not visible to other projects in your organisation.
Single-material sections
When every region’s material is the same (or only outlines are present and they all carry the same material), the section is single-material. The analyser reports the full geometric property set and the transformed property in the response is null. There is nothing else to do — the geometric properties are the answer.
Composite (multi-material) sections
A composite section has more than one distinct material across its regions. GCS supports two composite layouts:
- Adjacent regions. Two outlines, or outline + inclusion, that share at most a boundary and never an interior area. The textbook composite-beam case — a concrete slab with a steel beam stacked on top of it — is this layout.
- Embedded inclusion. An inclusion polygon strictly contained inside an outline polygon. The host outline’s material is displaced over the inclusion’s footprint, so the net geometric area is unchanged while the transformed-section path applies the inclusion’s modular ratio over that footprint. This is the rebar-in-concrete and plate-inside-host-shape case.
What is not accepted is a partial overlap — an inclusion straddling an outline boundary is neither adjacent nor embedded, and returns overlapping_regions.
Both layouts are computed through the same modular-ratio method described below. For reinforced-concrete design with proper strain compatibility (concrete cracking, rebar yielding, – interaction), the Advanced Concrete Section is still the right tool — the modular-ratio method here is linear-elastic and only describes the stiffness-weighted geometry, not post-elastic capacity.
The modular ratio
For an axially loaded section made of two materials A and B with Young’s moduli and , an applied strain produces stresses and . For the section to behave as a single equivalent piece in bending, regions of material B can be “transformed” to material A by scaling their area by the modular ratio:
After transformation, every region is treated as if it were made of the reference material A, but its geometric contribution is scaled by . The resulting section properties are the transformed (or stiffness-weighted) properties — they capture how the composite assembly resists bending under the assumption of plane sections remaining plane.
Reference material
The reference material is the material of the first outline in the region list. In the textbook concrete-slab-on-steel-beam case you would typically draw the concrete first — and the resulting transformed properties are referenced to concrete, which is the natural choice. If you draw steel first, the transformed properties are referenced to steel and the concrete is the region being scaled.
The response includes the reference material’s identity so the consumer never has to guess which axis the transformed properties are expressed in. For a concrete material the elasticModulus_MPa reported here is derived, not stored: it comes from the material’s characteristic strength under the concrete design standard registered for your project’s jurisdiction (AS 3600:2018 Table 3.1.2, ACI 318-19 Cl 19.2.2, or EN 1992-1-1 Cl 3.1.3) — so a C32/40 in an Australian project reports the Table 3.1.2 figure of 30,100 MPa, the same number the Advanced Concrete Section computes with:
"transformed": {
"referenceMaterial": {
"id": 12,
"name": "C32/40",
"elasticModulus_MPa": 30100
},
"area": 38500,
"momentOfInertia": { "Ix": 1.23e9, "Iy": 4.5e8, "Ixy": 0 },
...
}
Reading a concrete modulus from the catalogue API
Because depends on the design standard your project works to, the catalogue endpoints that have no project — GET /api/v1/materials and the MCP ListMaterials / SearchMaterials / CreateMaterial tools — cannot derive it. They report elasticModulus: null for any concrete material with an established , alongside an elasticModulusSource field that says which regime the material is under:
elasticModulusSource | elasticModulus | Which materials |
|---|---|---|
"derived" | the derived on the project-scoped picker; null on the unscoped catalogue endpoints | concrete with an established |
"declared" | the stored value, always | every other family, and a bespoke concrete mix with no |
null here means “not derivable on this endpoint”, never “this material has no modulus”. Use the project-scoped material picker (GET /api/v1/materials/picker?projectId=…, or the MCP PickMaterials tool) when you need the number, and read from compressiveStrength if you want to derive it yourself. The stored column is deliberately not published for a derived row: it is not what any calculation reads, and publishing it beside the picker’s derived figure would give you two different moduli for one material with nothing saying which is in force.
Plastic modulus is null for composite sections
Three fields are deliberately null in the response when the section is composite:
plasticModulusshapeFactortransformed.plasticModulus(not even present in the type)
This is not a bug. Plastic capacity depends on per-material yield, not on modular ratio — squashing a composite section to a single equivalent material and computing via the boundary integral produces a number that looks like a plastic modulus but does not correspond to any physical plastic capacity. The plasticModulusReason field in the response carries a human-readable explanation.
Composite plastic capacity is therefore handled by the material-specific designers (ACS for concrete sections, LGS for cold-formed steel), each of which solves the appropriate plastic strain-compatibility problem with the right constitutive models.
The reasoning is the same as #874: returning a silently-substituted plastic modulus would be incorrect data, which is worse than no data. The null is the deliberate signal that this question does not have a meaningful answer here.
For the inverse — when you do want plastic capacity for a composite or reinforced section, see:
- Reinforced concrete sections (rebar embedded in concrete): use ACS, which has the right reinforcement model and applies plane-sections + concrete cracking + rebar yielding correctly
- Cold-formed steel sections: use LGS, which applies the Direct Strength Method
:::note[AU hot-rolled and plate steel catalogue seeded — September 2026 (#5853)] The Australian hot-rolled and plate steel material catalogue is now available in GCS. AS/NZS 3678:2016 and AS/NZS 3679.1:2016 grades are seeded one row per thickness band — including Grade 250, 350, and 350L0 for flat products, and Grade 300, 350, and 400 for structural sections. For plate steel, the yield strength varies with thickness: for example, Grade 350 plate declares 360 MPa below 11 mm, 360 MPa from 11–17 mm, and 340 MPa above 17 mm, matching AS/NZS 3678 Table 2.
These materials appear in the GCS picker alongside any other materials your project’s jurisdiction supports. Their elasticModulus is declared (200,000 MPa), so they are always available in the picker regardless of project standard. For Australian projects they will typically appear near the top of the list.
If your project uses a non-AU jurisdiction, these grades are included in the picker only when the project’s standard suite includes AS/NZS material clauses. The summary note below the picker names any catalogue materials not offered for your jurisdiction. :::
Material appearance
Each drawn region on the GCS canvas is filled with the colour of its assigned material. The colour picker now offers a WCAG-safe curated palette — every swatch clears a minimum 3:1 contrast ratio against both the light and dark canvas backgrounds (WCAG 2.1 SC 1.4.11) and stays perceptually distinct from the canvas’s semantic overlay colours. If an existing region carries a colour outside the palette, it is preserved without change (per the §874 principle — incorrect data is worse than no data).
Two non-colour cues accompany every filled region: a thin materialOutline stroke around the perimeter, and a materialLabelText name label drawn at the region centroid. Both resolve correctly under light and dark themes, so the section boundary and material identity are never reliant on fill colour alone.
Worked example
The next step is the composite-section worked example, which walks through a concrete-on-steel adjacent composite, showing both the geometric and transformed property output.