Version 2.0.0 — release notes
Version 2.0.0 is a revision of the combination engine rather than a maintenance release. Every generated combination was checked term by term against EN 1990 and its bridge annex, and the differences found there are corrected below. Alongside those corrections, the bridge ψ tables, the groups, the relations and the Annex A2 combination rules that previously had to be assembled by hand are now built from the model, and both the time taken to read the model and the number of combinations written to it have been reduced. Nothing in an existing model changes until the plugin is run and the commit confirmed.
Developed with
- MIDAS CIVIL NX 2026 (v2.0.0)
Corrections to the combination logic
- Expression 6.10a now applies ψ₀ to the leading variable action, as EN 1990 requires. It was previously left unreduced, which made 6.10a more onerous than the expression allows and, with ξ at its default of 1.0, an exact duplicate of 6.10b.
- The ψ factors are the bridge values. What shipped previously were the Table A1.1 values for buildings — traffic at 0.7 / 0.5 / 0.3. They are now the Annex A2 values, and ψ₂ for traffic is zero, which is what removes traffic from the quasi-permanent, seismic and accidental combinations.
- Two moving-load cases can no longer appear in the same combination. A MIDAS moving load case is an envelope, so adding two of them together sums vehicle positions that never occur at the same instant and counts the traffic twice; EN 1991-2 allows one traffic group at a time.
- Braking, centrifugal and acceleration forces are reduced when they accompany. They were applied at full value in every combination regardless of whether traffic was leading; they now take ψ₀, ψ₁ or ψ₂ like any other variable action.
- Settlement is factored as a permanent action. It was applied at 1.0 in the ultimate combinations instead of γG. This is the one correction in this release whose effect is to make the combinations more onerous rather than less.
- Combinations that cannot be built are reported rather than dropped. Where a moving load has no frequent case mapped, every combination needing its reduced form used to disappear from the set with no trace; the reason is now raised in the preview.
New in this release
- The bridge type selects the ψ table — Annex A2 Table A2.1 for road bridges, Table A2.2 for footbridges and Table A2.3 for railway bridges. A railway model is recognised from its moving load definition; a footbridge is not distinguishable from a road model in MIDAS, so it is chosen from a selector.
- Groups and relations are built from the mapped load types as soon as the model is read, in place of the manual assignment that had to be completed before generation was allowed. Groups already created by hand are never overwritten.
- The Annex A2 combination rules are created as cross-category constraints: snow need not be combined with traffic, and wind need not be combined with thermal actions. The wind and thermal rule is omitted for railway bridges, where Annex A2 does not give it. Both are Nationally Determined and are reported for review, because both reduce the number of combinations.
- Load cases whose MIDAS type does not identify them, such as user defined loads, are mapped from their names where the name is unambiguous, and the inferred cases are listed so they can be checked. A declared MIDAS load type always takes precedence over the name.
- The mutually exclusive alternatives in a category can be collapsed into a single Envelope sub-combination that the generated combinations reference at the same factor. The option is set per category, and it reduces the number of rows without changing the design envelope.
- Combinations are named by expression and leading action — ULS610b-Traf-14 rather than 610B_TRA001_14 — and the description column, previously left blank, now carries the equation, the permanent variant and any other expressions the row also covers.
Faster, and fewer rows
- The model is read in one pass. The seven queries the plugin makes to CIVIL NX are now issued together rather than one after another, which is the largest part of the wait before Model Validation appears; against a 300 ms per request test harness the read fell from 2.18 s to 0.32 s.
- Duplicate combinations are removed. The case with no variable actions is produced identically by 6.10a, 6.10b, the characteristic and the quasi-permanent combination, and was written to the model four times over. Only one is kept, and it records which other expressions it covers.
- Envelope cases are shared rather than repeated. They were previously created once per expression, so enveloping one pair of alternatives produced several identical Envelope combinations.
- The relation built for a category is shown as a selected preset rather than as an unrecognised custom expression, so it is clear what has been applied and it is not replaced by accident.
Verification
- 175 automated assertions across nine suites, all passing, run against the engine extracted from the released package rather than from the working copy.
- Every expression the plugin generates — 6.10, 6.10a, 6.10b, the characteristic, frequent and quasi-permanent combinations, accidental 6.11 and seismic 6.12 — checked term by term against hand-calculated values on a synthetic bridge model.
- The envelope option checked for equivalence by expanding every Envelope reference back out and comparing against the un-collapsed run: on the test model, 297 combinations reduced to 87 plus six envelope cases with nothing lost and nothing invented.
- Bridge type detection, name inference, the automatic groups, relations and constraints each checked against the combinations they produce, not only against the structures they create.
Caveats to carry into use
The generation logic is verified; the commit path is not verified against a live model. The Envelope sub-combinations are written using the same iTYPE and ANAL=CB shape that the plugin's existing envelope feature already used, but that write has not been exercised against MIDAS as part of this release. Envelopes are supported only in the General load combination table; committing them to a design table is refused with an explicit message.
ξ for 6.10b is left at 1.0 and one set of permanent factors is used, so an equilibrium check with its own γG values needs a separate run. ψ₀ and ψ₁ are treated as equal for moving loads, which is correct for gr1a and for the main railway groups and conservative elsewhere. Only Eurocode moving load cases are read, so a model using plain MIDAS moving load cases contributes no traffic. Fatigue combinations are not generated. As with any generated set, the preview and its ledger should be read before the combinations are committed.