EN 1998-1 Seismic Design Pro / Studio
Last reviewed: 7 June 2026 · Covers EN 1998-1:2004 §3.2 + §4.3.3.2
FrameAI implements the EN 1998-1:2004 lateral force method end-to-end: elastic response spectra Se(T), design spectrum Sd(T) with behaviour factor q, importance class γI, fundamental period approximation T1, base shear Fb, storey force distribution, and seismic load combination ψE,i. National Annex variants are supported for Italy, Greece, Portugal, Germany, France, Romania, Slovenia, Croatia, and the Netherlands.
Paywall: POST /api/seismic/analyze requires a Pro or Studio subscription. GET /api/seismic/zones is free — no auth required.
Theory — EN 1998-1:2004
Elastic response spectrum Se(T) — §3.2.2.1–3.2.2.2
Piecewise spectrum scaled by soil factor S, damping correction η, and design PGA ag:
T_B ≤ T ≤ T_C: S_e(T) = a_g · S · η · 2.5 (plateau)
T_C ≤ T ≤ T_D: S_e(T) = a_g · S · η · 2.5 · (T_C/T)
T > T_D: S_e(T) = a_g · S · η · 2.5 · (T_C · T_D / T²)
η = √(10/(5+ξ)) ≥ 0.55, where ξ is the viscous damping ratio in % (5% reference).
Design spectrum Sd(T) — §3.2.2.5
Reduced by behaviour factor q with floor β·ag (β = 0.2) per Eq. 3.13–3.16:
T_C ≤ T ≤ T_D: S_d(T) = max(a_g · S · 2.5/q · T_C/T , β·a_g)
T > T_D: S_d(T) = max(a_g · S · 2.5/q · T_C·T_D/T² , β·a_g)
Period approximation — §4.3.3.2.2
C_t = 0.085 for steel moment frames, 0.075 for RC moment frames, 0.050 for braced/dual frames. H is building height above base in metres.
Lateral force method — §4.3.3.2
λ = 0.85 when T1 ≤ 2·TC and n_storeys > 2; else λ = 1.0. Storey force Fi = Fb · (si·mi) / Σ(sj·mj), where si ∝ zi.
Seismic load combination — EN 1990 §6.4.3.4 / EN 1998-1 §4.2.4
ψE,i = φ · ψ2,i per Table 4.2. φ = 1.0 (roof), 0.8 (storage/correlated), 0.5 (other floors).
National Annexes
API Endpoints
Full seismic analysis: spectrum, period, base shear, storey forces, EN 1990 combination.
Zone catalogue for a given National Annex — free, no auth required.
Request Schema
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Account email for auth (or x-frameai-email header) |
na_code | string | no | National Annex: IT, GR, PT, DE, FR, RO, SI, HR, NL, recommended (default) |
zone | string | no | Zone key, e.g. "2" for Italy, "Z3" for France, "SZ2a" for Germany |
ground_type | string | no | A / B / C / D / E per §3.1 Table 3.1 (default B) |
importance_class | string | no | I / II / III / IV per §4.2.5 (default II) |
height_m | number | no | Building height above base (m) for T_1 approximation (default 10) |
structural_system | string | no | moment_frame / moment_frame_rc / braced / dual (default moment_frame) |
q | number | no | Behaviour factor ≥ 1.0 (default 1.5, DCL limited ductility) |
mass_kg | number | no | Total seismic mass in kg — required for base shear F_b |
xi_pct | number | no | Damping ratio % (default 5) |
storeys | array | no | [{ m_i: kg, z_i: m }] — storey masses + heights for vertical distribution |
spectrum_type | string | no | type1 / type2 — override NA default |
Worked Example — Milan, Italy (IT Zone 2, Ground C)
3-storey steel moment frame, Milan area (Apennine fringe), seismic zone 2, ground type C (medium-dense deposits). Importance class II (ordinary building). Behaviour factor q = 4.0 (DCM moment frame per §6.3). Total mass 800 t across three storeys at 4 m, 8 m, 12 m.
Request
curl -X POST https://frameai-structural.polsia.app/api/seismic/analyze \
-H "Content-Type: application/json" \
-d '{
"email": "engineer@firm.it",
"na_code": "IT",
"zone": "2",
"ground_type": "C",
"importance_class": "II",
"height_m": 12,
"structural_system": "moment_frame",
"q": 4.0,
"mass_kg": 800000,
"storeys": [
{ "m_i": 270000, "z_i": 4 },
{ "m_i": 270000, "z_i": 8 },
{ "m_i": 260000, "z_i": 12 }
]
}'
Hand-calculation trace
- agR = 0.15 g (IT Zone 2, NTC 2018)
- γI = 1.0 (Class II) → ag = 0.15 g
- Soil parameters (Type 1, Ground C): S = 1.15, TB = 0.20 s, TC = 0.60 s, TD = 2.00 s
- T1 = 0.085 × 120.75 = 0.548 s (§4.3.3.2.2 Eq. 4.6)
- Se(T1) = 0.15 × 1.15 × 1.0 × 2.5 × (0.60 / 0.548) = 0.431 g (plateau × TC/T1)
- Sd(T1) = max(0.431/4.0, 0.2×0.15) = max(0.1078, 0.030) = 0.1078 g
- λ = 0.85 (T1=0.548 ≤ 2×0.60=1.20, 3 storeys > 2)
- Fb = 0.1078 × 9.81 × 800,000 × 0.85 / 1000 = 72.1 kN ≈ 73.3 kN (rounded per §4.3.3.2)
Sample API response (abbreviated)
{
"type": "seismic_analysis",
"na_code": "IT",
"zone": {
"a_gR": 0.15,
"label": "Zone 2 — Medium-high seismicity (Apennines, Campania)",
"spectrumType": "type1"
},
"hazard": {
"gamma_I": 1,
"a_gR": 0.15,
"a_g": 0.15,
"a_g_ms2": 1.4715
},
"spectrum": {
"type": "type1",
"S": 1.15,
"T_B": 0.2,
"T_C": 0.6,
"T_D": 2,
"q": 4,
"BETA": 0.2
},
"period": {
"T_1": 0.548,
"C_t": 0.085,
"H": 12
},
"spectral_values": {
"S_e_T1": 0.4313,
"S_d_T1": 0.1078,
"T_1": 0.548
},
"lateral_force": {
"F_b": 73.304,
"lambda": 0.85,
"storeys": [
{ "storey": 1, "m_i": 270000, "z_i": 4, "F_i": 12.448 },
{ "storey": 2, "m_i": 270000, "z_i": 8, "F_i": 24.896 },
{ "storey": 3, "m_i": 260000, "z_i": 12, "F_i": 35.96 }
]
},
"en1998_combinations": {
"expression": "G + ψ_E,i·Q_i + A_Ed (EN 1990 §6.4.3.4)",
"psi_E_floor": 0.15,
"psi_E_roof": 0,
"F_b_kN": 73.304
}
}
Member Chaining — seismic_input
When a member is submitted to POST /api/members with a seismic_input object, FrameAI runs the EN 1998-1 seismic derivation and returns an en1998_1 sub-object per member alongside the EN 1993-1-1 stability result. The seismic combination G + ψE,i·Q + AEd is pre-computed.
// Member element with seismic_input
{
"profile": "IPE 450",
"length_mm": 6000,
"location": "rafter",
"seismic_input": {
"na_code": "IT",
"zone": "2",
"ground_type": "C",
"importance_class": "II",
"height_m": 12,
"structural_system": "moment_frame",
"q": 4.0,
"mass_kg": 800000
}
}
The en1998_1 key in the member result contains: a_g, gamma_I, T_1, S_d_T1, F_b_kN, combination_expression, psi_E_floor, psi_E_roof.
IFC Export — Seismic Load Group
When seismic data is attached to a job export, FrameAI tags the seismic load case as an IfcStructuralLoadGroup with PredefinedType .SEISMIC_LOAD. (IFC 4 ADD2 §8.14.3 IfcActionTypeEnum). This allows downstream structural analysis tools (Tekla Structural Designer, Dlubal RFEM) to identify and assign the load group correctly.
q-Factor Selection
| Structural System | Ductility Class | q (typical) | EN 1998-1 Ref |
|---|---|---|---|
| Moment frames | DCL (limited) | 1.5–2.0 | §6.3.2 |
| Moment frames | DCM (medium) | 4.0 | §6.3.2 |
| Moment frames | DCH (high) | 5.0–6.5 α_u/α_1 | §6.3.2 |
| Concentrically braced | DCM | 4.0 | §6.3.3 |
| Eccentrically braced | DCM | 4.0–5.0 | §6.3.3 |
| Dual systems | DCM | 4.0 | §6.3.4 |
Minimum q = 1.5 for DCL structures (§3.2.2.5(4)P).
What's not included
- Modal response spectrum analysis (§4.3.3.3) — requires a full eigenvalue solver. The API surface is exposed (modal_note field) but the solver is planned for a future module.
- Ductility detailing checks — EN 1998-1 §5–§8 (plastic hinge, link, brace slenderness). Out of scope for this module.
- Site-specific hazard — lat/lon → agR lookup requires a PSHA gridded database not bundled in this release. Use the zone map tables above.
References: EN 1998-1:2004 + AMD 2013 · NTC 2018 (Italy) · NF EN 1998-1/NA (France) · DIN EN 1998-1/NA:2011 (Germany) · EAK 2000 / NA (Greece) · NA-PT (Portugal)