# MIDAS CIVIL NX tools (MIDAS IT Europe) (remote · midasiteurope.com)

Build, check and report on MIDAS CIVIL NX bridge models through the MIDAS IT Europe plugins.

- Trust score: 65/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `midasiteurope.com`: 65/100 (this document), [markdown](https://verifymcp.io/servers/com-midasiteurope-civil-nx/midasiteurope.md), [page](https://verifymcp.io/servers/com-midasiteurope-civil-nx/midasiteurope)

## Channel facts

- Endpoint: `https://midasiteurope.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.7.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (auto_structure_groups_undo).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 51/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 38471 tokens (~380/item across 101 items; 101 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 33/100
  - Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 82% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 102 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the MIDAS CIVIL NX tools (MIDAS IT Europe) MCP server?

MIDAS CIVIL NX tools (MIDAS IT Europe) is a hosted endpoint at https://midasiteurope.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-midasiteurope-civil-nx 'https://midasiteurope.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-midasiteurope-civil-nx": {
      "url": "https://midasiteurope.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-midasiteurope-civil-nx": {
      "type": "http",
      "url": "https://midasiteurope.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-midasiteurope-civil-nx]
url = "https://midasiteurope.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-midasiteurope-civil-nx": {
      "type": "remote",
      "url": "https://midasiteurope.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-midasiteurope-civil-nx --url 'https://midasiteurope.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-midasiteurope-civil-nx:
    url: "https://midasiteurope.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-midasiteurope-civil-nx": {
      "Transport": "http",
      "Url": "https://midasiteurope.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-midasiteurope-civil-nx -t streamable-http -u 'https://midasiteurope.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-midasiteurope-civil-nx": {
      "type": "http",
      "url": "https://midasiteurope.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 63, +1)

- [security] Tool “cs454_moving_loads_read” rewrote its description, which is the text the model reads
- [security] Tool “ec_moving_loads_read” rewrote its description, which is the text the model reads
- [security] Tool “pd6694_ssi_plan” rewrote its description, which is the text the model reads
- [security] Tool “slab_capacities_from_bars” rewrote its description, which is the text the model reads
- [functional improvement] Tool coverage: 76% → 82%
- [cosmetic] “cs454_moving_loads_read” reworded the description of “codeChange”
- [cosmetic] “cs454_moving_loads_read” reworded the description of “laneSource”
- [cosmetic] “cs454_moving_loads_read” reworded the description of “unitSwitch”
- [cosmetic] “cs454_moving_loads_read” reworded the description of “writeOptions”
- [cosmetic] “ec_moving_loads_read” reworded the description of “codeChange”
- [cosmetic] “ec_moving_loads_read” reworded the description of “laneSource”
- [cosmetic] “ec_moving_loads_read” reworded the description of “unitSwitch”
- [cosmetic] “ec_moving_loads_read” reworded the description of “writeOptions”
- [cosmetic] “pd6694_route_a” reworded the description of “abutmentType”
- [cosmetic] “pd6694_route_a” reworded the description of “gammaBulk”
- [cosmetic] “pd6694_route_a” reworded the description of “gammaQ”
- [cosmetic] “pd6694_route_a” reworded the description of “gammaSat”
- [cosmetic] “pd6694_route_a” reworded the description of “hasWaterTable”
- [cosmetic] “pd6694_route_a” reworded the description of “phiInferiorDeg”
- [cosmetic] “pd6694_route_a” reworded the description of “phiSuperiorDeg”
- [cosmetic] “pd6694_route_a” reworded the description of “psi”
- [cosmetic] “pd6694_route_a” reworded the description of “skewDeg”
- [cosmetic] “pd6694_route_a” reworded the description of “surchargeKpa”
- [cosmetic] “pd6694_route_a” reworded the description of “waterTableDepth”
- [cosmetic] “pd6694_route_a_write” reworded the description of “abutmentType”
- [cosmetic] “pd6694_route_a_write” reworded the description of “abutments”
- [cosmetic] “pd6694_route_a_write” reworded the description of “gammaBulk”
- [cosmetic] “pd6694_route_a_write” reworded the description of “gammaQ”
- [cosmetic] “pd6694_route_a_write” reworded the description of “gammaSat”
- [cosmetic] “pd6694_route_a_write” reworded the description of “hasWaterTable”
- [cosmetic] “pd6694_route_a_write” reworded the description of “phiInferiorDeg”
- [cosmetic] “pd6694_route_a_write” reworded the description of “phiSuperiorDeg”
- [cosmetic] “pd6694_route_a_write” reworded the description of “psi”
- [cosmetic] “pd6694_route_a_write” reworded the description of “skewDeg”
- [cosmetic] “pd6694_route_a_write” reworded the description of “surchargeKpa”
- [cosmetic] “pd6694_route_a_write” reworded the description of “waterTableDepth”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “abutmentType”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “abutments”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “gammaBulk”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “gammaQ”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “gammaSat”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “hasWaterTable”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “phiInferiorDeg”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “phiSuperiorDeg”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “psi”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “skewDeg”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “surchargeKpa”
- [cosmetic] “pd6694_ssi_plan” reworded the description of “waterTableDepth”
- [cosmetic] “pd6694_ssi_run” reworded the description of “abutmentType”
- [cosmetic] “pd6694_ssi_run” reworded the description of “abutments”
- [cosmetic] “pd6694_ssi_run” reworded the description of “gammaBulk”
- [cosmetic] “pd6694_ssi_run” reworded the description of “gammaQ”
- [cosmetic] “pd6694_ssi_run” reworded the description of “gammaSat”
- [cosmetic] “pd6694_ssi_run” reworded the description of “hasWaterTable”
- [cosmetic] “pd6694_ssi_run” reworded the description of “phiInferiorDeg”
- [cosmetic] “pd6694_ssi_run” reworded the description of “phiSuperiorDeg”
- [cosmetic] “pd6694_ssi_run” reworded the description of “psi”
- [cosmetic] “pd6694_ssi_run” reworded the description of “skewDeg”
- [cosmetic] “pd6694_ssi_run” reworded the description of “surchargeKpa”
- [cosmetic] “pd6694_ssi_run” reworded the description of “waterTableDepth”
- [cosmetic] “slab_capacities_from_bars” reworded the description of “alpha_cc”
- [cosmetic] “slab_capacities_from_bars” reworded the description of “fck”
- [cosmetic] “slab_capacities_from_bars” reworded the description of “fyk”
- [cosmetic] “slab_capacities_from_bars” reworded the description of “gamma_c”
- [cosmetic] “slab_capacities_from_bars” reworded the description of “gamma_s”
- [cosmetic] “slab_capacities_from_bars” reworded the description of “thickness_mm”

### 2026-10-30 (score 62, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] New tool “civil_combinations_quick”, which the server declares destructive
- [security] New tool “civil_loads_supports”, which the server declares destructive
- [security] New tool “civil_remove_loads”, which the server declares destructive
- [security] Tool “bridge_reshape” rewrote its description, which is the text the model reads
- [security] Tool “bridge_reshape_read” rewrote its description, which is the text the model reads

### 2026-10-29 (score 62, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] New tool “bridge_thermal_remove”, which the server declares destructive
- [security] New tool “bridge_thermal_undo”, which the server declares destructive
- [security] New tool “civil_write_tables”, which the server declares destructive
- [security] New tool “civil_write_tables_undo”, which the server declares destructive
- [security] New tool “cs454_combinations_apply”, which the server declares destructive
- [security] New tool “cs454_combinations_undo”, which the server declares destructive
- [security] New tool “ec_combinations_apply”, which the server declares destructive
- [security] New tool “ec_combinations_undo”, which the server declares destructive
- [security] New tool “ec_moving_loads_undo”, which the server declares destructive
- [security] New tool “point_to_patch_apply”, which the server declares destructive
- [security] New tool “point_to_patch_undo”, which the server declares destructive
- [security] Tool “cs454_lane_layout” rewrote its description, which is the text the model reads
- [security] Tool “cs454_moving_loads” rewrote its description, which is the text the model reads
- [security] Tool “cs454_moving_loads_undo” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 25741 → 35436
- [functional] New tool “bridge_thermal_apply”
- [functional] New tool “bridge_thermal_calc”
- [functional] New tool “bridge_thermal_read”
- [functional] New tool “civil_run_analysis”
- [functional] New tool “civil_save_model”
- [functional] New tool “combination_contributions”
- [functional] New tool “combination_tree”
- [functional] New tool “cs454_combinations_read”
- [functional] New tool “cs454_moving_loads_read”
- [functional] New tool “ec_combinations_read”
- [functional] New tool “ec_lane_layout”
- [functional] New tool “ec_moving_loads”
- [functional] New tool “ec_moving_loads_read”
- [functional] New tool “midas_docs_read”
- [functional] New tool “midas_docs_search”
- [functional] New tool “midas_library”
- [functional] New tool “point_to_patch_dispersal”
- [functional] New tool “point_to_patch_read”
- [cosmetic] “cs454_moving_loads” added an optional parameter “configFile”
- [cosmetic] “cs454_moving_loads” added an optional parameter “deckFilter”
- [cosmetic] “cs454_moving_loads” added an optional parameter “irishRailTrains”
- [cosmetic] “cs454_moving_loads” added an optional parameter “trafficOtherWay”
- [cosmetic] “cs454_lane_layout” reworded the description of “lanes”
- [cosmetic] “cs454_moving_loads” reworded the description of “config”
- [cosmetic] “cs454_moving_loads” reworded the description of “laneSource”
- [cosmetic] “cs454_moving_loads” reworded the description of “lanes”
- [cosmetic] “cs454_moving_loads” reworded the description of “readDeck”
- [cosmetic] “cs454_moving_loads” reworded the description of “reference”
- [cosmetic] “cs454_moving_loads” reworded the description of “scope”
- [cosmetic] “cs454_moving_loads” reworded the description of “section”
- [cosmetic] “cs454_moving_loads” reworded the description of “vehicles”
- [cosmetic] “cs454_moving_loads” reworded the description of “writeOptions”

### 2026-10-27 (score 61, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-26 (score 60)

First indexed and scored.

## MCP tools (101)

### `auto_structure_groups` (~364 tokens)

Auto Structure Groups

Creates one structure group per section, per material, or per section + material pair, with the Auto Structure Groups plugin's own engine: it reads every element's section and material, names each group from the prefix and the section/material names (cleaned and cut to 40 characters, as in the plugin; elements with no section/material go to <prefix>UNASSIGNED), largest group first. Optional: include each group's nodes, skip groups with fewer than minElements elements, or write only the groups named in groups. A name that already exists is skipped unless existing: 'overwrite' — and then this run's members are ADDED to that group (CIVIL NX merges a write into an existing group; it never removes members). Previews unless apply: true with confirmPlanHash; the plugin's writer re-reads db/GRUP, writes in batches and checks the read-back. auto_structure_groups_undo reverses it.

Input parameters:

- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `existing`: A proposed name that already exists: leave that group alone, or add this run's members to it.
- `groups` (array): Write only these proposed groups (names from the preview); default all.
- `includeNodes` (boolean): Also put each group's element nodes in the group.
- `minElements` (integer): Skip groups with fewer elements than this (2 or more turns the filter on).
- `mode`: What one group holds: one section, one section + material pair, or one material.
- `prefix` (string): Put in front of every group name.

### `auto_structure_groups_undo` (~119 tokens)

Undo an Auto Structure Groups run

Reverses an auto_structure_groups run from the ledger: deletes the groups it created and puts every group it added members to back exactly as it was (from the snapshot taken just before the write). Refuses while a construction stage uses one of those groups, because deleting a group strips it from every stage. Default: the latest run not yet undone. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string): Ledger run id; default = the latest auto_structure_groups run not yet undone.

### `b2p_survey` (~585 tokens)

Beam to Plate — which beams and sections can convert

Reads the model the way the Beam to Plate plugin (1.0.6) does and studies every section the chosen beams use, against CIVIL NX's own published properties (/ope/SECTPROP): whether the outline was READ correctly (A/Iyy/Izz vs published) and how far the PLATE model sits from it, the verdict (converts / blocked / not read, with the reason), the plugin's plate-or-solid suggestion with the mesh a solid would need, material slots of composite parts, the model's length/force units, the beams that cannot be converted and why, and an element estimate for the mesh. Choose beams with ONE of elementIds, sections, groups or useCivilSelection (default: every beam). Read-only; on the website it runs as a background job (poll job_status).

Input parameters:

- `acceptSections` (array): Section ids to convert although their check failed (the window's 'Convert anyway'). Only with the user's agreement.
- `calibrate`: Adjust plate thicknesses so the mesh has the section's own A, centroid, Iyy, Izz: where the shape is idealised (generic), every section, or never.
- `elementIds` (string|array): Beam element ids: "101-118, 205" or [101, 102].
- `facets` (integer): Facets per circle for round sections.
- `groups` (array): Every beam in these structure groups.
- `includeUncountedStiffeners` (boolean): Also mesh stiffeners CIVIL NX leaves out of the section (the 'C' box unticked).
- `longSize` (number): Mesh size along the member (default 0.5 m), in the model's length unit (b2p_survey reports it).
- `meshAs` (object): Per-section override of the suggestion, {sectionId: 'plate'|'solid'}.
- `model`: convert = plates/solids along the member; slice = a transverse slice of each section meshed in its own plane (beams kept, nothing linked or loaded).
- `sectionLimit` (integer): How many section cards to return.
- `sections` (array): Every beam of these section ids.
- `solidMode`: auto = each section as the plugin suggests (solid for compact concrete, plates for thin walls); plate; solid.
- `solidPlates`: How a solid (concrete) section meshed as PLATES is idealised: grid of plates over the real section; thin plates round the outline; one plate per wall.
- `transSize` (number): Mesh size across the section (default 0.25 m), in the model's length unit (b2p_survey reports it).
- `useCivilSelection` (boolean): The elements selected in CIVIL NX right now.

### `b2p_convert` (~1316 tokens)

Beam to Plate — convert beams into a plate/solid mesh

Converts beam elements into a plate (or solid) mesh of their cross-section with the Beam to Plate plugin's own engine (1.0.6): every section CIVIL NX gives geometry for (rolled/fabricated steel, PSC, boxes, composite, tapered groups, VALUE, catalogue), solid concrete sections as a grid of plates or as solids, exact beam loads / nodal loads / temperatures moved onto the mesh, haunches, diaphragms, deck slabs joined, rigid links to whatever else meets the beam's nodes (staged per construction stage), virtual beams per row of plates, groups and composite casting stages carried across. Previews by default (totals, volume check, per-section verdict, notes, what is left behind such as tendons or lanes, problems, planHash) and writes nothing. With apply: true and confirmPlanHash it re-reads the model, refuses if the plan changed, and writes the plugin's way: nodes, thicknesses and elements written and read back, then links, loads, groups, stages, virtual beams, and only then the source beams deleted (deleteSourceBeams); a write that fails part way is rolled back by the plugin. The run is recorded for b2p_undo. Lengths are in the model's unit. Use b2p_survey first. Runs as a background job on the website (poll job_status).

Input parameters:

- `acceptSections` (array): Section ids to convert although their check failed (the window's 'Convert anyway'). Only with the user's agreement.
- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `boundaryGroup` (string): Boundary group for the rigid links (one per stage in a staged model).
- `calibrate`: Adjust plate thicknesses so the mesh has the section's own A, centroid, Iyy, Izz: where the shape is idealised (generic), every section, or never.
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `convertLoads` (boolean): Move beam loads, nodal loads on the beams' nodes and element temperatures onto the plates.
- `deckPlates`: Deck plates (plugin 1.0.6): follow = along the slab's mid-thickness, as before; straight = every top-slab node on one line under the top surface, each thicker plate (tapering cantilever, haunches) of…
- `deleteOrphanNodes` (boolean): Remove the beams' own nodes that nothing else uses once they are deleted.
- `deleteSourceBeams` (boolean): DESTRUCTIVE: delete the converted beams after the mesh is written and read back (b2p_undo puts them back). Never deleted for a slice.
- `diaphragms` (boolean): Fill compact diaphragm segments of a box run with plates (plate mode).
- `elementIds` (string|array): Beam element ids: "101-118, 205" or [101, 102].
- `facets` (integer): Facets per circle for round sections.
- `groupName` (string): Structure group for the whole mesh ('' for none).
- `groups` (array): Every beam in these structure groups.
- `includeUncountedStiffeners` (boolean): Also mesh stiffeners CIVIL NX leaves out of the section (the 'C' box unticked).
- `joinDecks` (boolean): Join neighbouring girders' deck slabs.
- `linkAll` (boolean): Rigid-link every member end, not only where something else attaches.
- `loadAt`: Where a converted load lands: exactly where it acts; on the section centreline; spread over the section; spread over the deck top.
- `loadFloor` (number): Ignore nodal loads under this, in the model's force unit (default 0.01 kN); totals are kept.
- `longSize` (number): Mesh size along the member (default 0.5 m), in the model's length unit (b2p_survey reports it).
- `materials` (object): Material per composite part, {sectionId: {part: materialId}} (b2p_survey lists each section's materialSlots); default: from the CS data or the beam's own.
- `mergeTolerance` (number): Node merge tolerance (default 0.0001 m), in the model's length unit (b2p_survey reports it).
- `meshAs` (object): Per-section override of the suggestion, {sectionId: 'plate'|'solid'}.
- `model`: convert = plates/solids along the member; slice = a transverse slice of each section meshed in its own plane (beams kept, nothing linked or loaded).
- `reuseExistingNodes` (boolean): Use a model node already at a mesh point instead of a new one.
- `sections` (array): Every beam of these section ids.
- `sliceAtPct` (number): model 'slice': where along each member, %.
- `sliceWidth` (number): model 'slice': the slice width = plate thickness (default 1 m), in the model's length unit (b2p_survey reports it).
- `solidMode`: auto = each section as the plugin suggests (solid for compact concrete, plates for thin walls); plate; solid.
- `solidPlates`: How a solid (concrete) section meshed as PLATES is idealised: grid of plates over the real section; thin plates round the outline; one plate per wall.
- `thicknessGroupingPct` (number): Plates within this % share one thickness record.
- `transSize` (number): Mesh size across the section (default 0.25 m), in the model's length unit (b2p_survey reports it).
- `transverseStiffeners` (object): Add transverse web stiffeners (CIVIL NX holds none): h outstand, b thickness, spacing along the girder, side, one at each end.
- `useCivilSelection` (boolean): The elements selected in CIVIL NX right now.
- `virtualBeams` (boolean): One virtual beam per row of plates, so results read as beam forces.

### `b2p_undo` (~255 tokens)

Beam to Plate — undo a conversion

Undoes a b2p_convert run from the ledger with the plugin's own Undo: removes the virtual beams, the plates/solids, the rigid links and construction-joint links, the converted loads and the nodes it made, gives the stages and boundary groups back, then puts the beams back with their beam loads, temperatures, releases, offsets, moved nodal loads and structure-group membership, and reads the model back. Resumable: if CIVIL NX refuses some deletes or the connection goes, the call says what is left and calling again with the same runId carries on (also after a background job that stopped). Afterwards (tidy, default on) it also removes the thickness records and the 'B2P mesh' group the run created when nothing uses them — the plugin's own Undo leaves both. Default run: the latest not undone. Previews unless apply: true; on the website the apply runs as a background job.

Input parameters:

- `apply` (boolean)
- `runId` (string): Ledger run id; default = the latest b2p_convert run not yet undone.
- `tidy` (boolean): Also remove the thickness records and mesh group this run created, when unused.

### `bridge_reshape_read` (~348 tokens)

Bridge Reshaper — read the bridge

Reads the open model the way the Bridge Reshaper plugin (1.0.6) does: the deck (straight, in straight pieces kinked at half-joints or piers, or curved; beam girders, girders meshed as plates, or a spine (single-line) model with its pylons, stays and piers read as substructure; any length unit), its spans, supports and skews (Abutment A, Pier 1…, Abutment B, skew in degrees from square), girder/edge lines, bearings and substructure assemblies, its direction (tightest radius on a curve) and its levels (level at each abutment, grade, cross slope), with a plan drawing. Read-only; on the website it runs as a background job (poll job_status). Use it before bridge_reshape.

Input parameters:

- `axis`: Spans run along global X or Y. Default: X, or Y when no deck is found along X (the read says which it used).
- `deckGroups` (array): Structure groups that ARE the deck, when the automatic choice is wrong. Default: found from the model.
- `picture` (boolean): Return a plan drawing (PNG) to look at.
- `supports` (array): Where the supports are, chosen instead of the ones found — when the plugin finds none (bearings it cannot read) or finds every construction-stage support defined. Each: ch = chainage along the deck f…

### `bridge_reshape` (~911 tokens)

Bridge Reshaper — change spans, skews, alignment and levels

Changes the geometry of the bridge in the open model in place, with the Bridge Reshaper plugin's own engine (1.0.6): new span lengths (the deck is stretched - each span keeps its element count), a skew for each support, a new horizontal alignment (straight, segments, fitted points, LandXML/DXF) and new deck levels (flat, grades with parabolic vertical curves, one-way or crowned cross slope). crossMembers 'parallel' (default) moves nodes only - every element, node, load, group, stage and lane keeps its id; 'square' re-meshes the deck with cross members square to the girders running on to the skewed support lines (straight decks of beam girders only, not with new levels). Loads, structure groups, construction stages, lanes, tapered groups and links follow the deck; beam loads in global axes, plane loads and lane end skews are turned with it; piers and abutments follow their supports ('follow' the skew, or 'rigid' keep their shape). Previews by default: the changes, the issues and a plan drawing (grey = as it is, blue = proposed), with a planHash; nothing is written. With apply: true and confirmPlanHash it re-reads the model, refuses if anything changed since the preview, writes, reads every written node and element back, and records the run for bridge_reshape_undo. Lengths and chainages in the model's unit. Use bridge_reshape_read first. Runs as a background job on the website (poll job_status).

Input parameters:

- `addToEverySpan` (number): Instead of spans: add this to every span.
- `alignment` (object): A new horizontal alignment (default: as modelled - a curved deck keeps its curve). straight: a straight line through the deck start, at the deck's start heading or headingDeg (straightens a curved de…
- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview (and saved a copy of the model).
- `axis`: Spans run along global X or Y. Default: X, or Y when no deck is found along X (the read says which it used).
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `crossMembers`
- `deckGroups` (array): Structure groups that ARE the deck, when the automatic choice is wrong. Default: found from the model.
- `layout` (object): Deck in straight pieces only: straight (lay it straight) or turns at joints, piers or chainages, each with its angle in degrees (positive turns left).
- `levels` (object): New deck levels (default: as modelled). Each node keeps its depth below the deck surface; piers and abutments are stretched vertically to meet the deck (their lowest node stays).
- `picture` (boolean): Return a plan drawing (PNG) to look at.
- `skewAll` (number): Instead of skews: the same skew at every support.
- `skews` (array): New skew of every support in degrees from square, Abutment A first; null keeps one. Default: as modelled.
- `spans` (array): New length of every span, Abutment A first (model unit). Default: as modelled.
- `substructure`: follow: piers and abutments shear with their support's skew; rigid: they keep their shape and turn with it.
- `supports` (array): Where the supports are, chosen instead of the ones found — when the plugin finds none (bearings it cannot read) or finds every construction-stage support defined. Each: ch = chainage along the deck f…

### `bridge_reshape_undo` (~181 tokens)

Bridge Reshaper — undo a reshape

Undoes a bridge_reshape run from the ledger with the plugin's own Undo: every row the run overwrote is written back and every row it created is removed, so the model returns exactly. Refuses on a different model, or when the model was edited since the apply (force: true undoes anyway, overwriting those edits). Resumable: a step that fails is reported and calling again retries only what is left. Default run: the latest not undone. Previews unless apply: true; on the website the apply runs as a background job.

Input parameters:

- `apply` (boolean)
- `force` (boolean): DESTRUCTIVE: undo even though the model was edited since the apply (those edits are overwritten).
- `runId` (string): Ledger run id; default = the latest bridge_reshape run not yet undone.

### `bridge_thermal_calc` (~505 tokens)

Bridge thermal actions (EN 1991-1-5 / CS 454 / BS 5400-2)

Calculates bridge temperature actions with the Bridge Thermal Loads plugin's own engine: shade air and effective bridge temperatures, the uniform ranges ΔT_N,con / ΔT_N,exp (and bearing ranges), the vertical temperature difference (linear Approach 1 or the non-linear code profile, as depth/temperature points), CS 454 / BS 5400 combined X − Y values, and the simultaneity combinations, each with its clause. Codes: EN 1991-1-5 + UK NA (default) or CEN, CS 454, BS 5400-2:2006 / 1978. Needs no model.

Input parameters:

- `D` (number)
- `T0` (object): Initial (restraint) temperature, °C. Default: the code's value where it gives one.
- `code`: EN 1991-1-5 with the UK NA (default) or the CEN values, CS 454, BS 5400-2:2006 or the legacy BS 5400-2:1978.
- `elementDifferences` (boolean)
- `h` (number)
- `kind`: Deck type: steel_box, steel_plate (truss or plate girders), composite (concrete deck on steel girders), concrete_slab, concrete_beam, concrete_box.
- `loads` (object): Load types to generate (each gives two cases). Default: uniform and difference.
- `method`: Temperature difference: approach2 = non-linear profile (code profiles), approach1 = linear. Default: the code's (the CEN text leaves it to the annex — then it must be given).
- `modularRatio` (number): Es/Ec, needed for combined cases on composite sections (LR 765 effective temperature).
- `procedure`: Composite decks under EN: normal or simplified procedure.
- `sections` (array): Deck sections. For one section the shorthand kind / h / D may be used instead.
- `simultaneity` (boolean): Report the simultaneity combinations (ω factors).
- `site` (object): For the uniform component (and bearing / combined cases). Tmin / Tmax are the shade air temperatures read from the code's maps by the user (the maps are not built in), °C.
- `surfacing` (object)
- `trussReduction` (boolean): Steel truss / plate girder reduction where the code gives one.

### `bridge_thermal_read` (~160 tokens)

Read the deck sections for thermal loads

Reads the open model the way the Bridge Thermal Loads plugin does: the deck from a structure group, element list or the CIVIL NX selection, grouped into sections (beams by section, plates by thickness), each with the proposed deck type, depths h and D, and its width-against-depth parts per material (read through the shared section library; catalogue sections from CIVIL NX's published properties). Also the units, the initial temperature and any EC1T_ cases already in the model. Read-only.

Input parameters:

- `elementIds` (array)
- `group` (string): Structure group holding the deck elements.
- `useSelection` (boolean): Use the elements selected in CIVIL NX (when neither group nor elementIds is given).

### `bridge_thermal_apply` (~645 tokens)

Write bridge temperature loads (Bridge Thermal Loads)

Calculates the temperature actions for the deck and writes them with the Bridge Thermal Loads plugin's writer: EC1T_Uniform_Exp/_Con (type T, element or system temperature), EC1T_Diff_Heat/_Cool (type TPG: beam section temperature bands, or a linear gradient for Approach 1 and plates), and optionally EC1T_Bearing_* and EC1T_Comb_Max/_Min (USER). Temperatures are converted to the model's unit; the model is re-checked before writing, an undo record is kept before the first change, and every row is read back. Previews unless apply: true.

Input parameters:

- `T0` (object): Initial (restraint) temperature, °C. Default: the code's value where it gives one.
- `apply` (boolean)
- `code`: EN 1991-1-5 with the UK NA (default) or the CEN values, CS 454, BS 5400-2:2006 or the legacy BS 5400-2:1978.
- `confirmPlanHash` (string)
- `elementDifferences` (boolean)
- `elementIds` (array)
- `group` (string): Structure group holding the deck elements.
- `loads` (object): Load types to generate (each gives two cases). Default: uniform and difference.
- `material` (object): Band material: element (default, the model's E and α) or input (the code's α with E given here, in the model's force/length² units).
- `method`: Temperature difference: approach2 = non-linear profile (code profiles), approach1 = linear. Default: the code's (the CEN text leaves it to the annex — then it must be given).
- `modularRatio` (number): Es/Ec, needed for combined cases on composite sections (LR 765 effective temperature).
- `overwrite` (boolean): Replace EC1T_ cases of the same names already in the model. Only with the user's agreement.
- `procedure`: Composite decks under EN: normal or simplified procedure.
- `sectionOverrides` (array): Corrections to the sections bridge_thermal_read reports (by key or name).
- `simultaneity` (boolean): Report the simultaneity combinations (ω factors).
- `site` (object): For the uniform component (and bearing / combined cases). Tmin / Tmax are the shade air temperatures read from the code's maps by the user (the maps are not built in), °C.
- `suffix` (string): Write a named set: every case name gets this suffix (letters, digits, _ or -, at most 12), e.g. _2.
- `surfacing` (object)
- `trussReduction` (boolean): Steel truss / plate girder reduction where the code gives one.
- `useSelection` (boolean): Use the elements selected in CIVIL NX (when neither group nor elementIds is given).
- `wholeModelUniform` (boolean): Write the uniform component as a system temperature on the whole model (all sections must be one deck type).

### `bridge_thermal_undo` (~124 tokens)

Undo a thermal write or remove

Undoes the latest bridge_thermal_apply or bridge_thermal_remove run (or the run named): deletes the EC1T_ cases present now and puts back the EC1T_ cases and loads saved before that run, merged into each element's current loads so other cases are kept. Refused in a different model or after a unit change; needs force if EC1T_ loads or the geometry changed since. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `force` (boolean)
- `runId` (string)

### `bridge_thermal_remove` (~90 tokens)

Remove the thermal loads

Removes what the Bridge Thermal Loads plugin writes: every load case whose name starts with EC1T_ (also named sets and ones the plugin window wrote) and all temperature loads in them, on any element. Other load cases are not touched. An undo record is kept, so bridge_thermal_undo can put them back. Previews unless apply: true.

Input parameters:

- `apply` (boolean)

### `concurrent_forces_setup` (~309 tokens)

Concurrent forces: what the model offers

Concurrent Force Reporter, step 1. Reads the open CIVIL NX model the way the plugin does when it connects and lists what a concurrent-forces run can use: every load case and combination (all ten LCOM tables) with how MIDAS addresses it, whether it is envelope-valued, and whether it is AVAILABLE — moving load, settlement, response spectrum, ABS and SRSS (anywhere down the combination tree) cannot give a coexistent state and are listed with the reason and the workaround; the items the model has per result source (beam/truss/plate elements, general/elastic links, node reactions/displacements); the key effects available for them (keyEffect ids such as BEAM:Moment-y, REACTION:FZ, ELASTICLINK:Axial, with units); structure groups (element and node ranges, links found on their nodes); construction stages with their step tokens; criteria and output positions; the model's units; whether results are published. Read-only. Use search to narrow a long case list; includeConstituents shows each combination's children.

Input parameters:

- `includeConstituents` (boolean): List each combination's children (name, factor, analysis kind).
- `limit` (integer): At most this many load case entries.
- `search` (string): Only load cases / combinations whose name contains this (case-insensitive).
- `units` (object): Units to report in (MIDAS converts). Default: the model's own.

### `concurrent_forces` (~563 tokens)

Concurrent forces at the governing state

Concurrent Force Reporter, step 2. For a set of items (elements, nodes, links), finds the load state that makes ONE key effect extreme at ONE key item (max, min or absolute max over the selected load cases and combinations, at every output point), then reports every item's results IN THAT SAME STATE — the coexistent forces a bearing, pier cap or connection check needs, not each item's own envelope. If the governing load is an envelope (or an Add containing one), it is resolved recursively to a single deterministic state (a weighted sum of static/stage cases, pinning each envelope to the child that governs at the key item), re-read at that state, and gated against the value MIDAS itself reports; it refuses rather than approximates. Near-ties are reported. Items: items in set syntax — elements 12 or 15to20, nodes N12, general links L12, elastic links EL12 (a range keeps only ids that exist) — and/or structure groups. keyItem must be in the set. Values come back in the units asked for (default the model's); plate results are per unit length. Read-only (only /post/TABLE result reads). Call concurrent_forces_setup first for names and keyEffect ids. Runs as a job on the website.

Input parameters:

- `criterion` (string)
- `csv` (boolean): Also store the full table (header, notes, every row) as a CSV file and return its link.
- `groups` (array): Structure groups to add to the set.
- `items` (string): Items in set syntax, e.g. "101to148, N9001to9006, EL12".
- `keyEffect` (string): The governing component: a keyEffect id from setup (e.g. BEAM:Moment-y, REACTION:FZ), or just the component (Moment-y, FZ, Axial) for the key item's own table. Default: the first component of the key…
- `keyItem` (string, required): The item whose extreme picks the state, e.g. "101", "N9001", "EL12". Must be in the set.
- `loadCases` (array, required): Load case / combination names to search (available ones from setup).
- `maxRows` (integer): At most this many table rows inline.
- `position` (string): Which output points to SHOW for I/J members; the governing state is always searched over all of them.
- `stageSteps` (array): Stage step tokens (from setup) when construction-stage cases are selected. Default: every stage step.
- `units` (object): Units to report in (MIDAS converts). Default: the model's own.

### `concurrent_forces_probe` (~119 tokens)

Concurrent forces: probe the result tables

Concurrent Force Reporter diagnostics. For each result source the plugin reads (beam, truss, plate, general link, elastic link, node reaction, node displacement), asks this CIVIL NX build with one item of that kind which table token answers, the columns it returns and how they map, the output-point tokens, and the result series published. Use it when concurrent_forces reports a missing table, column or series. Read-only.

Input parameters:

- `units` (object): Units to report in (MIDAS converts). Default: the model's own.

### `cs454_lane_layout` (~282 tokens)

CS 454 notional lanes for a carriageway

Lays out CS 454 notional lanes, remaining areas, footways and strips on a carriageway cross-section with the CS454 - Moving Load Wizard's own layout engine (Table 5.9a, cl 5.10, ALL model 1 single/convoy, ALL model 2, SV/HB routes and SV/HB with ALL), and lists the case groups each loading needs. Needs no model — use it to answer layout questions or to choose inputs before cs454_moving_loads.

Input parameters:

- `lanes` (object): Lane options. picked — Loadings to lay out: M1S (ALL model 1 single), M1C (convoy), M2 (ALL model 2), FW (footway), ACC (accidental), SV / HB (routes alone), SVM1S / SVM1C / SVM2 (SV with ALL), HBM1S…
- `section` (object): Cross-section, m: width (carriageway), kerbOffset, markedLanes, hardShoulder, leftVerge, rightVerge, footways (leftFootway, rightFootway), central reserve.

### `cs454_moving_loads_read` (~939 tokens)

Read the model for CS 454 moving loads

Read-only: changes nothing in the model. Call it before cs454_moving_loads to see what the CS454 - Moving Load Wizard would do. Returns: existing (the lanes, vehicles, cases and groups already in the model, each marked if an earlier cs454_moving_loads run created it); laneKindSuggestion (LINE for beams, SURFACE for plates); deckRead (reference girder or plate edge, width, kerb offset, cross-beam group, skew — narrowed by deckFilter, reversed by trafficOtherWay); the lanes and cases the given settings would produce; config (the plugin's own settings file — pass it back as configFile); options (valid loadings, vehicles and Irish Rail trains). Takes the same inputs as cs454_moving_loads; the write permissions (codeChange, unitSwitch) only change which blockers are listed.

Input parameters:

- `codeChange` (boolean): A permission for the write tool. Here it only changes which blockers are listed — this tool never writes. Accepted so the same inputs serve both tools.
- `config` (object): Advanced: any other plugin configuration field, deep-merged over the settings.
- `configFile` (string|object): The plugin's own Export JSON settings file (or its "config"), as text or object: starts from those settings instead of the defaults. The deck is then not re-read unless readDeck: true.
- `deckFilter` (object): Read the deck only from these members, as the plugin's Show only: group (structure group name), section ("S:<id>" beam section or "T:<id>" plate thickness), zMin / zMax (level band, m).
- `irishRailTrains` (boolean|array): Add Irish Rail CCE-STR-PSD-008 trains as user-defined vehicles: true for all, or a list of train ids / names (cs454_moving_loads_read options).
- `laneKind`: Default: what the model suggests (beams -> LINE, plates -> SURFACE).
- `laneSource`: NEW shows the lanes the settings would lay out; EXISTING shows the lanes already in the model.
- `lanes` (object): Lane options. picked — Loadings to lay out: M1S (ALL model 1 single), M1C (convoy), M2 (ALL model 2), FW (footway), ACC (accidental), SV / HB (routes alone), SVM1S / SVM1C / SVM2 (SV with ALL), HBM1S…
- `readDeck` (boolean): Read the reference line / alignment, width, kerb offset, cross beams and skew from the deck (default on, off over a loaded settings file).
- `reference` (object): Line lanes: the reference line. mode RANGE (range: element ids e.g. '1-10'), GROUP (group), or NODES (nodes: [ids], shape).
- `section` (object): Carriageway cross-section, m: width, kerbOffset, verges, footways, central reserve… width/kerbOffset are read from the deck if omitted.
- `surface` (object): Surface lanes: the alignment. mode GROUP (group), NODES (nodes) or RANGE (range).
- `trafficOtherWay` (boolean): Read the deck the other way round (the plugin's "Traffic runs the other way").
- `unitSwitch` (boolean): A permission for the write tool. Here it only changes which blockers are listed — this tool never writes. Accepted so the same inputs serve both tools.
- `vehicles` (object): Vehicle options: levels (NORMAL, T26, T18, FE1, T7_5, FE2, T3; lower levels stacked in), allModel1, allModel2, svTypes (e.g. ["SV 80", "SV 100"]) and hbUnitsList (e.g. [30, 45]) — every one crossed w…
- `writeOptions` (object): Lane write options the write tool would use (loadDist, groupName, moving, skewStart/skewEnd); here they only shape the lanes shown.

### `cs454_moving_loads` (~1008 tokens)

CS454 - Moving Load Wizard

CS 454 assessment live loading with the CS454 - Moving Load Wizard plugin's own engine: notional lanes laid out on the carriageway (line lanes on a grillage, surface lanes on a plate deck), ALL model 1/2 vehicles up to the chosen level, SV and HB routes or SV/HB with ALL (every SV type / HB rating crossed with every ALL vehicle), fire engines, user-defined and Irish Rail vehicles, the moving load cases with remaining areas, and envelope load combinations per family — each written and read back. It reads the deck from the model the way the plugin does unless reference/surface/section.width are given, and accepts the plugin's exported settings file. Without apply it only previews (lanes, vehicles, cases, stages, blockers, planHash). With apply: true it writes, records the run for cs454_moving_loads_undo, and never overwrites lanes, vehicles or cases it did not write.

Input parameters:

- `apply` (boolean)
- `codeChange` (boolean): Allow setting the moving load code to BS. Changing it from another code DELETES every lane in the model — only with the user's agreement.
- `config` (object): Advanced: any other plugin configuration field, deep-merged over the settings.
- `configFile` (string|object): The plugin's own Export JSON settings file (or its "config"), as text or object: starts from those settings instead of the defaults. The deck is then not re-read unless readDeck: true.
- `confirmPlanHash` (string)
- `deckFilter` (object): Read the deck only from these members, as the plugin's Show only: group (structure group name), section ("S:<id>" beam section or "T:<id>" plate thickness), zMin / zMax (level band, m).
- `irishRailTrains` (boolean|array): Add Irish Rail CCE-STR-PSD-008 trains as user-defined vehicles: true for all, or a list of train ids / names (cs454_moving_loads_read options).
- `laneKind`: Default: what the model suggests (beams -> LINE, plates -> SURFACE).
- `laneSource`: NEW lays out and writes lanes; EXISTING loads the lanes already in the model.
- `lanes` (object): Lane options. picked — Loadings to lay out: M1S (ALL model 1 single), M1C (convoy), M2 (ALL model 2), FW (footway), ACC (accidental), SV / HB (routes alone), SVM1S / SVM1C / SVM2 (SV with ALL), HBM1S…
- `readDeck` (boolean): Read the reference line / alignment, width, kerb offset, cross beams and skew from the deck (default on, off over a loaded settings file).
- `reference` (object): Line lanes: the reference line. mode RANGE (range: element ids e.g. '1-10'), GROUP (group), or NODES (nodes: [ids], shape).
- `scope`: ALL = lanes + vehicles + cases (+ envelopes); LANES = lanes only; LOADS = vehicles and cases on the model's existing lanes.
- `section` (object): Carriageway cross-section, m: width, kerbOffset, verges, footways, central reserve… width/kerbOffset are read from the deck if omitted.
- `surface` (object): Surface lanes: the alignment. mode GROUP (group), NODES (nodes) or RANGE (range).
- `trafficOtherWay` (boolean): Read the deck the other way round (the plugin's "Traffic runs the other way").
- `unitSwitch` (boolean): Allow switching CIVIL NX to kN, m for the write and back afterwards (needed for non-SI models).
- `vehicles` (object): Vehicle options: levels (NORMAL, T26, T18, FE1, T7_5, FE2, T3; lower levels stacked in), allModel1, allModel2, svTypes (e.g. ["SV 80", "SV 100"]) and hbUnitsList (e.g. [30, 45]) — every one crossed w…
- `writeOptions` (object): Lane write options: loadDist LANE|CROSS, groupName (cross-beam group), moving BOTH|FORWARD|BACKWARD, skewStart, skewEnd (°; read from the deck when omitted).

### `cs454_moving_loads_undo` (~95 tokens)

Undo a CS454 moving-load run

Removes the lanes, vehicles, cases, envelopes and groups a cs454_moving_loads run wrote, using the plugin's own cleanup (cases and envelopes first, bottom up, at most 100 per call): anything edited since the run, or still used by something else, is kept. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `cs454_combinations_read` (~93 tokens)

Read the model for CS 454 combinations

Reads the open model the way the CS 454 Load Assessment Combinations plugin does: every static, construction-stage, settlement and moving load case with the Table A.1 action / CS 454 load model and assessment level it proposes, each tab's gate, the defaults, the option lists (actions, load models, levels, group templates) and the combinations already in the LCOM tables. Read-only.

### `cs454_combinations_apply` (~368 tokens)

Generate and write CS 454 assessment combinations

Generates CS 454 assessment load combinations with the plugin's engine (Table A.1 γfL by combination 1–4 and limit state, adverse/relieving permanent variants, wind sub-case, ALL/SV/HB traffic with associated traffic, exclusive groups collapsed into envelopes, readable names) and writes them to an LCOM table with its commit; every row is read back by name. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `cases` (array): Per-case mapping edits (match by caseId or caseName, as cs454_combinations_read lists them).
- `collapse` (boolean): Combine exclusive groups into one envelope sub-combination (the plugin's default); false never collapses.
- `commit` (object)
- `confirmPlanHash` (string)
- `customActions` (array): User-defined variable actions (become X_<NAME>, factors 1.00/0.00 until edited).
- `factorEdits` (array): Table A.1 cell edits.
- `gammaF3` (object)
- `gammaF3Mode`
- `groups` (string|object|null): null = automatic from the mapping; "template:<id>" (see options.groupTemplates); or the full { groups, withinCategory, constraints } state.
- `relations` (array)
- `scope` (object): Combinations 1–4, each { uls, sls }. Default: c1 ULS+SLS, c2–c4 ULS.
- `show` (object): Which combinations to list in the preview (all are written).
- `structureType`: Table A.1 general or cast iron (ULS only); masonry arches are out of scope (blocked).

### `cs454_combinations_undo` (~83 tokens)

Undo a CS 454 combinations write

Undoes the latest cs454_combinations_apply run (or the run named) with the plugin's cleanup: deletes the rows it wrote that still carry its names (referencing rows first), then restores every table it cleared at the original keys. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `cs455_describe_section` (~515 tokens)

CS 455: read a section and place its bars

Start here when the user shares a reinforcement drawing, photo or schedule. Read from it: cover, for each face the layers (number of bars or spacing, and Ø - mm, inches or #US sizes are all accepted), side bars, links (Ø, legs, spacing); then call this tool. It reads one beam section from the open model through the shared MIDAS section library (outline checked against CIVIL NX's published properties), places the bars with the CS 455 plugin's own placement (cover to every edge) and RETURNS A DRAWING of the section with every bar placed - compare it with the user's drawing and correct rebar until they match (ask the user about anything the drawing does not show, e.g. cover). Then cs455_export_calc_sheet gives the report. Also returns what the plugin's engine derives: area, centroid, depth, usable_for_capacity, parts, the bars placed per schedule row (or why a row failed), and the model's concrete grade. Read-only.

Input parameters:

- `concreteParts` (object): Composite sections: { part id: f_cu } where a part's grade differs (describe lists the parts).
- `confirmDimensions` (boolean): Only after the user has compared the drawn section with the drawing: needed when CIVIL NX published no properties to check the outline against.
- `image` (boolean): cs455_describe_section only: return the drawing of the section with its bars (default true).
- `rebar` (object): The bar schedule, as the plugin's Reinforcement tab: cover (mm to the bar face, default 50), gap (mm between layers, default max(25, Ø)), rows [{face: bottom|top|side|depth, layer (any whole number,…
- `restrained` (boolean): Compression bars are restrained by links (cl 5.3.1). Default false: compression bars get no compressive strength (cl 5.3.2(1)), conservative.
- `sectionId` (integer|string, required): The CIVIL NX section id (a beam section).

### `cs455_assess` (~863 tokens)

CS 455 assessment of an RC beam section

CS 455 ULS assessment of reinforced concrete beam sections with the plugin's own engine: reads the concurrent force rows (BEAMFORCE / BEAMFORCEVBM for envelopes and moving loads, kN·m; a moving-load case from a model analysed without 'Normal + Concurrent Force' is refused as NOT CONCURRENT) at the chosen element ends for the chosen combinations, and runs every row — N–M flexure by strain-compatibility equilibrium, shear (additive approach, links optional), torsion (cl 5.17–5.27) — with status per row (PASS / FAIL / BLOCKED / OUTSIDE RANGE OF VALIDITY) and the utilisation of each check. Read-only. Takes a while for many rows (a job on the website).

Input parameters:

- `axialSign`: Positive MIDAS axial is tension (-1, default) or compression (1).
- `cases` (array): Load cases / combinations by name (default: every load combination the model has).
- `classification`: RC only in these tools.
- `concreteModel`: Figure 3.4.1 curve (default) or the constant 0.6 fcu/γmc block of cl 5.1(3).
- `concreteParts` (object): Composite sections: { part id: f_cu } where a part's grade differs (describe lists the parts).
- `confirmDimensions` (boolean): Only after the user has compared the drawn section with the drawing: needed when CIVIL NX published no properties to check the outline against.
- `drawingReference` (string)
- `fcu` (number): Concrete cube strength, MPa (default: from the model's EN grade C../.. — its cube value).
- `fy` (number): Reinforcement yield strength, MPa (default 500).
- `image` (boolean): cs455_describe_section only: return the drawing of the section with its bars (default true).
- `includeJobs` (boolean): Also return the exact engine job of each listed row (for audit or re-running in the plugin).
- `links` (object): Links (omit for concrete-only shear, cl 5.6). Used by shear and by torsion.
- `maxResults` (integer): How many rows to list, worst first (default 40).
- `maxRows` (integer): Stop above this many force rows (default 1000).
- `momentSign`: Positive MIDAS My is sagging (1, default) or hogging (-1).
- `rebar` (object, required): The bar schedule, as the plugin's Reinforcement tab: cover (mm to the bar face, default 50), gap (mm between layers, default max(25, Ø)), rows [{face: bottom|top|side|depth, layer (any whole number,…
- `restrained` (boolean): Compression bars are restrained by links (cl 5.3.1). Default false: compression bars get no compressive strength (cl 5.3.2(1)), conservative.
- `secondaryActions`: Vy / T / Mz: assess N–My–Vz and list them (default), or refuse rows where they are non-zero.
- `sectionId` (integer|string, required): The CIVIL NX section id (a beam section).
- `shear` (boolean): Run the shear check (default true).
- `stations` (array): Element ends to assess (default: the section's first element, both ends, midspan). Location 'support' removes the shear enhancement near supports.
- `tensionOrigin`
- `torsion` (boolean): Torsion check, CS 455 cl 5.17–5.27, on rows that carry a torque (default true, as in the plugin).

### `cs455_export_calc_sheet` (~787 tokens)

CS 455 calculation sheet (Excel)

The report. Assesses one element end exactly as cs455_assess and writes the plugin's reference-format calculation sheet (.xlsx: A4 pages, title block, geometry, materials, reinforcement, section properties, sagging/hogging bending, shear and torsion with live formulas and charts, summary of results, and a Summary sheet with demand, resistance and ratio per check). Returns a download link. Use the same rebar/links that cs455_describe_section confirmed against the user's drawing. Read-only on the model.

Input parameters:

- `axialSign`: Positive MIDAS axial is tension (-1, default) or compression (1).
- `cases` (array): Load cases / combinations by name (default: every load combination the model has).
- `classification`: RC only in these tools.
- `concreteModel`: Figure 3.4.1 curve (default) or the constant 0.6 fcu/γmc block of cl 5.1(3).
- `concreteParts` (object): Composite sections: { part id: f_cu } where a part's grade differs (describe lists the parts).
- `confirmDimensions` (boolean): Only after the user has compared the drawn section with the drawing: needed when CIVIL NX published no properties to check the outline against.
- `drawingReference` (string)
- `element` (integer, required)
- `end`
- `fcu` (number): Concrete cube strength, MPa (default: from the model's EN grade C../.. — its cube value).
- `fy` (number): Reinforcement yield strength, MPa (default 500).
- `image` (boolean): cs455_describe_section only: return the drawing of the section with its bars (default true).
- `links` (object): Links (omit for concrete-only shear, cl 5.6). Used by shear and by torsion.
- `location`
- `maxRows` (integer): Stop above this many force rows (default 1000).
- `momentSign`: Positive MIDAS My is sagging (1, default) or hogging (-1).
- `rebar` (object, required): The bar schedule, as the plugin's Reinforcement tab: cover (mm to the bar face, default 50), gap (mm between layers, default max(25, Ø)), rows [{face: bottom|top|side|depth, layer (any whole number,…
- `report` (object)
- `restrained` (boolean): Compression bars are restrained by links (cl 5.3.1). Default false: compression bars get no compressive strength (cl 5.3.2(1)), conservative.
- `secondaryActions`: Vy / T / Mz: assess N–My–Vz and list them (default), or refuse rows where they are non-zero.
- `sectionId` (integer|string, required): The CIVIL NX section id (a beam section).
- `shear` (boolean): Run the shear check (default true).
- `stations` (array): Element ends to assess (default: the section's first element, both ends, midspan). Location 'support' removes the shear enhancement near supports.
- `tensionOrigin`
- `torsion` (boolean): Torsion check, CS 455 cl 5.17–5.27, on rows that carry a torque (default true, as in the plugin).

### `cs_stage_summary` (~258 tokens)

Construction Stage Reporter — stage summary

Reads the construction stage definition of the open CIVIL NX model with the Construction Stage Reporter plugin's engine and returns, per stage: duration and day range, the structure groups activated (with age and element count) and deactivated (with redistribution), boundary groups activated (deformed/original position) and deactivated, load groups activated/deactivated (first/last day), composite section parts (db/CSCS) that start acting, and the elements and boundary entities active after it. Also the composite sections, the whole-model summary, and the plugin's consistency checks (a group deactivated before it was activated, groups no stage uses, elements never activated, groups a stage names but the model lacks…). Read-only. elementIds: true adds the activated/deactivated element ids per stage; groups: true adds a row per group.

Input parameters:

- `elementIds` (boolean): Add the element ids activated and deactivated in each stage (as ranges, e.g. '1-40, 52').
- `groups` (boolean): Add one row per structure, boundary and load group: members and the stages that switch it.
- `maxStages` (integer)
- `stages` (array): Stage names to report (default: every stage).

### `cs_stage_results` (~473 tokens)

Construction Stage Reporter — construction-stage results

Reads construction-stage analysis results the way the Construction Stage Reporter plugin does (POST /post/TABLE in the construction-stage family, every stage in one query at its last step; stages after the analysis stopped carry the stage before and are flagged published:false). displacements (default on): per stage the largest resultant |D| over all nodes, its node and DX/DY/DZ, in mm; nodes:[ids] adds those nodes' displacements per stage. members: beam forces or stresses of chosen beams — per stage the max/min of a component over the beams active in it, with element, output position (I…J) and section part; detailElements:[ids] (≤20) adds the values along those beams. Units are the model's (forces/moments) and mm (displacements). series is a construction-stage result series (default Summation; listSeries: true lists what the model publishes, e.g. Dead Load, Tendon Primary, Creep Secondary). Needs a construction-stage analysis already run in CIVIL NX. Read-only; may take a minute on big models.

Input parameters:

- `displacements` (boolean)
- `listSeries` (boolean): Also list the construction-stage series the model publishes.
- `members` (object): Beam results of chosen members: {groups:[structure group names]} and/or {elements:[ids]} (only TYPE BEAM elements count), table 'BEAMFORCE' (default) or 'BEAMSTRESS', component (default Moment-y for…
- `nodes` (array): Node ids whose displacements to list per stage.
- `series` (string): Construction-stage result series for the displacements.
- `stages` (array): Stage names to report (default: every stage).

### `cs_stage_report` (~459 tokens)

Construction Stage Reporter — Excel / PDF report

Makes the Construction Stage Reporter plugin's own reports of the open model's construction stages and returns download links (never the file inline): the Excel workbook (summary, stage matrices for structure/boundary/load groups, group tables, stage details, composite sections, displacements, beam results, warnings) and the A4 PDF (cover, summary, matrices, one page per stage with a picture of CIVIL NX's own view of that stage from /view/CAPTURE, and the warnings). Construction-stage displacements (series, default Summation) are included when the analysis has been run; members (as cs_stage_results) adds one beam result component. The MP4 animation is not available here — use the plugin in CIVIL NX. Read-only, but the pictures make CIVIL NX show each stage in turn. Runs as a job.

Input parameters:

- `displacements` (boolean)
- `formats` (array): Default both.
- `includeLoads` (boolean): Include the load group matrix and load columns.
- `maxSnapshots` (integer): With more stages than this, pictures for this many evenly spread stages.
- `members` (object): Beam results of chosen members: {groups:[structure group names]} and/or {elements:[ids]} (only TYPE BEAM elements count), table 'BEAMFORCE' (default) or 'BEAMSTRESS', component (default Moment-y for…
- `program` (string): Program name printed on the reports, when CIVIL NX does not report its version.
- `series` (string)
- `snapshots` (boolean): A picture per stage in the PDF from CIVIL NX (/view/CAPTURE).
- `view`

### `culvert_preview` (~394 tokens)

Preview a 2D box culvert (Eurocode)

Validates a 2D Culvert project with the plugin's own Eurocode core and returns what it would build: nodes, elements, soil springs, basic load cases (traffic unit cases), the EN 1990 Annex A2 combination counts (ULS, SLS characteristic, quasi-permanent) and the nested CIVIL NX combinations, check locations, earth-pressure basis (K0 / PD 6694-1 Annex B / cl 9.4 K*) and derived geometry. Needs no model.

Input parameters:

- `project` (object): Changes to the 2D Culvert project (schema culvert-studio/2), merged onto the plugin's default project; arrays replace. Sections: project {name, reference, revision}; basis {profile: EN-1G | UK-1G | .…

### `culvert_build` (~442 tokens)

Build the culvert model in CIVIL NX

Writes the 2D Culvert model exactly as the plugin's Build: units, user material, sections, frame, soil springs, supports, every basic load case with its loads, and the nested EN 1990 Annex A2 combinations; then reads the loads back and fails if CIVIL NX dropped any. Into the open model only if it is empty, or into a new document (newDocument: true — DESTRUCTIVE: CIVIL NX replaces the open model). Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `confirmPlanHash` (string)
- `newDocument` (boolean): DESTRUCTIVE: open a new CIVIL NX model first (the open one is replaced; unsaved work is lost).
- `project` (object): Changes to the 2D Culvert project (schema culvert-studio/2), merged onto the plugin's default project; arrays replace. Sections: project {name, reference, revision}; basis {profile: EN-1G | UK-1G | .…

### `culvert_build_undo` (~89 tokens)

Undo a culvert build

Deletes every row a culvert_build wrote (combinations, loads, load cases, springs, supports, groups, elements, nodes, sections, material) from the ledger's record, and puts back the model's units. A model replaced by newDocument cannot be brought back. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `culvert_analyse_and_check` (~425 tokens)

Analyse the culvert and run every check

On the culvert model built from the same inputs (refused if the open model's counts differ): runs the CIVIL NX analysis (unless analyse: false), reads the basic-case results (forces, reactions, displacements) and runs the plugin's checks — every Annex A2 combination and vehicle position: ULS flexure and shear, SLS stresses and crack width, detailing, bearing and uplift. Returns the verdict and the governing locations. Takes minutes: a job on the website.

Input parameters:

- `analyse` (boolean): Run the analysis first (default true).
- `maxLocations` (integer): Locations to list, worst first (default 30).
- `project` (object): Changes to the 2D Culvert project (schema culvert-studio/2), merged onto the plugin's default project; arrays replace. Sections: project {name, reference, revision}; basis {profile: EN-1G | UK-1G | .…

### `culvert_report` (~394 tokens)

Culvert calculation report

Runs the checks on the analysed culvert model (as culvert_analyse_and_check, without re-analysing unless analyse: true) and writes the plugin's report: format xlsx (default) = the calculation book in the MIDAS report format with result diagrams captured from CIVIL NX, pdf, or both (one run of the checks). Returns download links.

Input parameters:

- `analyse` (boolean)
- `format`: xlsx (default), pdf, or both from one run of the checks.
- `project` (object): Changes to the 2D Culvert project (schema culvert-studio/2), merged onto the plugin's default project; arrays replace. Sections: project {name, reference, revision}; basis {profile: EN-1G | UK-1G | .…

### `midas_docs_search` (~316 tokens)

Search the MIDAS manuals

Searches the MIDAS help centre (support.midasuser.com), live: the CIVIL NX and GEN NX online help (every dialog: what it does, where it is in the menus, each input), the MIDAS API (MAPI) JSON manual (every db/ table, its URI, methods, JSON schema and examples), FAQ, tutorials and release notes. Use it to answer how-to and what-does-this-input-mean questions, to check CIVIL NX behaviour before advising, and to find the JSON shape of a MAPI table. English articles. Returns the matching articles (id, title, area, section, snippet, link); read one in full with midas_docs_read. Areas default to CIVIL NX help + API manual + FAQ + tutorials. Needs no model and no account.

Input parameters:

- `areas` (array): Where to search: civil (CIVIL NX online help), gen (GEN NX online help), api (MIDAS API (MAPI) JSON manual), faq (FAQ), tutorials (Tutorials), updates (Product updates / release notes), cim (CIM onli…
- `limit` (integer)
- `page` (integer)
- `query` (string, required): What to look for, in the manual's own words where possible, e.g. "composite section for construction stage", "moving load optimization", "db/STAG".

### `midas_docs_read` (~172 tokens)

Read a MIDAS manual article

Reads one MIDAS help-centre article in full, as Markdown: headings, notes, input tables, and for the MIDAS API manual the URI, methods, JSON schema and JSON examples as code blocks. Also lists the article's images (links). Long articles come in parts: call again with nextOffset. Give the user the article's url when you rely on it. Needs no model and no account.

Input parameters:

- `id` (string, required): Article id from midas_docs_search (e.g. "35987578396697") or the article's support.midasuser.com URL.
- `images` (boolean): List the article's images (alt text and link).
- `maxChars` (integer)
- `offset` (integer): Character offset to start from (nextOffset of the previous call).

### `dxf_inspect` (~898 tokens)

Advanced DXF Importer — inspect a drawing

Reads a DXF with the Advanced DXF Importer plugin's own parser and clean-up and reports what an import would create: the file (version, encoding, entity counts, what is ignored or unsupported), its units, every layer with its entities and mapping, and the clean model — nodes, BEAM/TRUSS/PLATE elements per layer, structure groups, disconnected parts, and the clean-up operations (merged nodes, removed duplicates and zero-length segments, splits at crossings and T-junctions, hanging nodes). Needs no CIVIL NX model and changes nothing. Give the drawing as dxfText, dxfBase64 or url (4 MB inline, 25 MB by url). Use it to choose the mapping and settings before dxf_import. Lengths in the report are in the unit the import works in (importIn).

Input parameters:

- `arcChord` (number): Instead of arcSegments: largest chord deviation, mm.
- `arcSegments` (integer): Arcs/circles/splines: segments per full circle.
- `drawingUnits`: The drawing's units when it does not record them ($INSUNITS; R12 files never do), or to override them.
- `dxfBase64` (string): The DXF file's bytes, base64, up to 4 MB decoded.
- `dxfText` (string): The DXF file's text (ASCII DXF), up to 4 MB. Use dxfBase64 for a binary DXF or an R12 file with non-ASCII layer names (the bytes then keep their code page).
- `fileName` (string): Name of the drawing (default: from the URL or path, else drawing.dxf). It names the import's master group DXF_<name> #<token>.
- `filePath` (string): Local server only: a path to the DXF on this machine, up to 50 MB.
- `ignoreAnnotationLayers` (boolean): Untick layers that are empty or mostly annotation (TEXT, DIMENSION, HATCH…), as the plugin's bulk action does.
- `mapping` (object): Layer mapping in the plugin's preset format (the file Save mapping writes). rules apply in order, first match wins, * and ? wildcards, case-insensitive; layers are exact names and override the rules.…
- `matchModelUnits` (boolean): As in the plugin: switch the CIVIL NX model's length unit to the drawing's (mm/cm/m/in/ft) before writing. DESTRUCTIVE when it changes the unit — the preview says so; undo switches it back. false = k…
- `mergeTolerance` (number): Node merge tolerance, mm (clean-up).
- `origin` (object): Move the drawing: {mode:'none'} (default), {mode:'min'} (drawing minimum to 0,0,0), or {mode:'user', x, y, z} (metres, subtracted). Use it for OS-grid / site coordinates.
- `plane`: Flat drawings only: XY → plan (global XY), XZ → elevation, YZ → side elevation.
- `planeOffset` (number): Flat drawings only: metres added along the axis the drawing's normal maps to.
- `url` (string): An https address the DXF is downloaded from, up to 25 MB (public hosts only on the website).

### `dxf_import` (~1029 tokens)

Advanced DXF Importer — import into CIVIL NX

Imports a DXF into the open CIVIL NX model with the Advanced DXF Importer plugin's engine: the same parse, layer mapping, clean-up and write as the plugin. Nodes and elements get new ids above the model's (existing rows are never overwritten); each layer's structure group is created or added to; blank properties become the plugin's DXF default material (C40/50), section (SB 500x300) and thickness (250), created or reused by name. Previews by default (writes nothing): the plan with id ranges, groups, default properties and any unit switch. To write, call again with the same inputs, apply: true and confirmPlanHash; the model is read again and the write refused if the plan changed. The write creates a master group DXF_<file> #<token> first, then the unit change, properties, nodes, elements and groups, then reads everything back to verify. The import journal is recorded so dxf_import_undo can remove exactly what it created, even after a partial failure. Inputs as for dxf_inspect, plus mergeExisting.

Input parameters:

- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `arcChord` (number): Instead of arcSegments: largest chord deviation, mm.
- `arcSegments` (integer): Arcs/circles/splines: segments per full circle.
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `drawingUnits`: The drawing's units when it does not record them ($INSUNITS; R12 files never do), or to override them.
- `dxfBase64` (string): The DXF file's bytes, base64, up to 4 MB decoded.
- `dxfText` (string): The DXF file's text (ASCII DXF), up to 4 MB. Use dxfBase64 for a binary DXF or an R12 file with non-ASCII layer names (the bytes then keep their code page).
- `fileName` (string): Name of the drawing (default: from the URL or path, else drawing.dxf). It names the import's master group DXF_<name> #<token>.
- `filePath` (string): Local server only: a path to the DXF on this machine, up to 50 MB.
- `ignoreAnnotationLayers` (boolean): Untick layers that are empty or mostly annotation (TEXT, DIMENSION, HATCH…), as the plugin's bulk action does.
- `mapping` (object): Layer mapping in the plugin's preset format (the file Save mapping writes). rules apply in order, first match wins, * and ? wildcards, case-insensitive; layers are exact names and override the rules.…
- `matchModelUnits` (boolean): As in the plugin: switch the CIVIL NX model's length unit to the drawing's (mm/cm/m/in/ft) before writing. DESTRUCTIVE when it changes the unit — the preview says so; undo switches it back. false = k…
- `mergeExisting` (boolean): Reuse existing model nodes within the merge tolerance instead of creating new ones there (reused nodes join no group).
- `mergeTolerance` (number): Node merge tolerance, mm (clean-up).
- `origin` (object): Move the drawing: {mode:'none'} (default), {mode:'min'} (drawing minimum to 0,0,0), or {mode:'user', x, y, z} (metres, subtracted). Use it for OS-grid / site coordinates.
- `plane`: Flat drawings only: XY → plan (global XY), XZ → elevation, YZ → side elevation.
- `planeOffset` (number): Flat drawings only: metres added along the axis the drawing's normal maps to.
- `url` (string): An https address the DXF is downloaded from, up to 25 MB (public hosts only on the website).

### `dxf_import_undo` (~163 tokens)

Undo a dxf_import

Removes what one dxf_import created, with the plugin's own removal rules: it refuses unless the import's master group is in the open model; deletes the import's elements, then its nodes, only where they still match the fingerprint taken before writing (anything edited since is kept, and a node another element uses is kept); deletes the groups and default properties it created once nothing uses them; switches the model's length unit back if the import changed it and it is unchanged since. Works after a partial import too. Default: the latest dxf_import not yet undone. Previews (what would be removed and kept) unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string): The runId dxf_import returned.

### `ec_combinations_read` (~97 tokens)

Read the model for Eurocode combinations

Reads the open model the way the Eurocode Load Combinations plugin does: every static, moving (characteristic/frequent pairs), construction-stage, settlement and response-spectrum case with the action and subtype the plugin proposes, the detected bridge type, the default scope and factors (EN 1990 Annex A2 recommended, UK NA or Irish NA), each tab's gate, and the combinations already in the LCOM tables. Read-only.

### `ec_combinations_apply` (~314 tokens)

Generate and write Eurocode load combinations

Generates EN 1990 bridge load combinations with the Eurocode Load Combinations plugin's engine (6.10 / 6.10a+b, SLS characteristic / frequent / quasi-permanent, accidental 6.11, seismic 6.12; Annex A2 ψ by bridge type; recommended, UK or Irish annex factors; leading-action and exclusive-alternative logic) and writes them to an LCOM table with its commit: the target is re-read first, every row is read back. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `collapseExclusive` (boolean): Combine exclusive alternatives into one envelope sub-combination (the plugin's default per relation).
- `commit` (object)
- `confirmPlanHash` (string)
- `factors` (object): Annex, bridge type and typed overrides (only finite numbers are taken).
- `groups` (object): Advanced: the Groups & Relations state { groups, withinCategory, constraints }. Omit to build them automatically from the mapping, as the plugin does.
- `mapping` (object): Changes to the mapping ec_combinations_read shows; only the rows to change. Rows match by caseId, else caseName (moving rows by charCaseName).
- `scope` (object): Default: ULS 6.10a + 6.10b only. UK and Irish annexes require 6.10 for bridges.
- `show` (object): Which combinations to list in the preview (all are written).

### `ec_combinations_undo` (~76 tokens)

Undo a Eurocode combinations write

Undoes the latest ec_combinations_apply run (or the run named) with the plugin's undo: deletes the rows it wrote that still carry its names, then restores the rows it deleted at their original keys. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `ec_lane_layout` (~308 tokens)

EN 1991-2 notional lanes for a carriageway

Lays out EN 1991-2 lanes on a carriageway cross-section with the Eurocode - Moving Load Wizard's own layout engine: Table 4.1 notional lanes and the remaining area, footways, the LM2 axle lane, the LM4 crowd lane, an LM3 special vehicle route and rail tracks, as the chosen loading needs, with each lane's role. Needs no model.

Input parameters:

- `lanes` (object): Lane options: prefix (default EC), packing, wheelSpace, optimiseNotional, lm2Manual / lm2Centre, sv / svCentre / svWidth (LM3 route), tracks { tracks, firstTrack, spacing, gauge }, userLanes.
- `loading` (object): Loading (the plugin's Loading step): disciplines (ROAD, FATIGUE, RAIL), groups (gr1a, gr1b, gr3, gr4, gr5 — the road models follow), roadModels / excludedModels, fatigueModels, railModels, lm3Vehicle…
- `section` (object): Cross-section, m: width (carriageway), kerbOffset, footways, verges, central reserve.

### `ec_moving_loads_read` (~892 tokens)

Read the model for Eurocode moving loads

Read-only: changes nothing in the model. Call it before ec_moving_loads to see what the Eurocode - Moving Load Wizard would do. Returns: existing (the lanes, vehicles, cases and groups already in the model, each marked if an earlier ec_moving_loads run created it); laneKindSuggestion (LINE for beams, SURFACE for plates); deckRead (reference girder or plate edge, width, kerb offset, cross-beam group, skew — narrowed by deckFilter, reversed by trafficOtherWay); the lanes, lane roles and cases the given settings would produce; config (the plugin's own settings file — pass it back as configFile); options (valid load groups, vehicles and Irish Rail trains). Takes the same inputs as ec_moving_loads; the write permissions (codeChange, unitSwitch) only change which blockers are listed.

Input parameters:

- `codeChange` (boolean): A permission for the write tool. Here it only changes which blockers are listed — this tool never writes. Accepted so the same inputs serve both tools.
- `config` (object): Advanced: any other plugin configuration field, deep-merged over the settings.
- `configFile` (string|object): The plugin's own Export JSON settings file (or its "config"), as text or object: starts from those settings instead of the defaults. The deck is then not re-read unless readDeck: true.
- `deckFilter` (object): Read the deck only from these members, as the plugin's Show only: group (structure group name), section ("S:<id>" beam section or "T:<id>" plate thickness), zMin / zMax (level band, m).
- `irishRailTrains` (boolean|array): Irish Rail CCE-STR-PSD-008 Appendix C trains on the tracks: true for all, or train ids / names (ec_moving_loads_read options). Dynamic factor settings in loading.ieRail.
- `laneKind`: Default: what the model suggests (beams -> LINE, plates -> SURFACE).
- `laneSource`: NEW shows the lanes the settings would lay out; EXISTING shows the lanes already in the model.
- `lanes` (object): Lane options: prefix (default EC), packing, wheelSpace, optimiseNotional, lm2Manual / lm2Centre, sv / svCentre / svWidth (LM3 route), tracks { tracks, firstTrack, spacing, gauge }, userLanes.
- `loading` (object): Loading (the plugin's Loading step): disciplines (ROAD, FATIGUE, RAIL), groups (gr1a, gr1b, gr3, gr4, gr5 — the road models follow), roadModels / excludedModels, fatigueModels, railModels, lm3Vehicle…
- `readDeck` (boolean): Read the reference line / alignment, width, kerb offset, cross beams and skew from the deck (default on, off over a loaded settings file).
- `reference` (object): Line lanes: the reference line. mode RANGE (range: element ids e.g. '1-10'), GROUP (group), or NODES (nodes: [ids], shape).
- `section` (object): Carriageway cross-section, m: width, kerbOffset, verges, footways, central reserve… width/kerbOffset are read from the deck if omitted.
- `surface` (object): Surface lanes: the alignment. mode GROUP (group), NODES (nodes) or RANGE (range).
- `trafficOtherWay` (boolean): Read the deck the other way round (the plugin's "Traffic runs the other way").
- `unitSwitch` (boolean): A permission for the write tool. Here it only changes which blockers are listed — this tool never writes. Accepted so the same inputs serve both tools.
- `writeOptions` (object): Lane write options the write tool would use (loadDist, groupName, moving, skewStart/skewEnd); here they only shape the lanes shown.

### `ec_moving_loads` (~968 tokens)

Eurocode - Moving Load Wizard

EN 1991-2 traffic loading with the Eurocode - Moving Load Wizard plugin's own engine: lanes laid out on the carriageway (line lanes on a grillage, surface lanes on a plate deck) for the chosen load groups gr1a / gr1b / gr3 / gr4 / gr5, fatigue models and rail (LM71, SW/0, SW/2, HSLM, Irish Rail trains), the MIDAS vehicles with the EN or UK alpha factors, and the moving load cases (characteristic / frequent) — each written and read back. It reads the deck from the model the way the plugin does unless reference/surface/section.width are given, and accepts the plugin's exported settings file. Without apply it only previews (lanes, vehicles, cases, stages, blockers, planHash). With apply: true it writes, records the run for ec_moving_loads_undo, and never overwrites lanes, vehicles or cases it did not write.

Input parameters:

- `apply` (boolean)
- `codeChange` (boolean): Allow setting the moving load code to EUROCODE. Changing it from another code DELETES every lane in the model — only with the user's agreement.
- `config` (object): Advanced: any other plugin configuration field, deep-merged over the settings.
- `configFile` (string|object): The plugin's own Export JSON settings file (or its "config"), as text or object: starts from those settings instead of the defaults. The deck is then not re-read unless readDeck: true.
- `confirmPlanHash` (string)
- `deckFilter` (object): Read the deck only from these members, as the plugin's Show only: group (structure group name), section ("S:<id>" beam section or "T:<id>" plate thickness), zMin / zMax (level band, m).
- `irishRailTrains` (boolean|array): Irish Rail CCE-STR-PSD-008 Appendix C trains on the tracks: true for all, or train ids / names (ec_moving_loads_read options). Dynamic factor settings in loading.ieRail.
- `laneKind`: Default: what the model suggests (beams -> LINE, plates -> SURFACE).
- `laneSource`: NEW lays out and writes lanes; EXISTING loads the lanes already in the model.
- `lanes` (object): Lane options: prefix (default EC), packing, wheelSpace, optimiseNotional, lm2Manual / lm2Centre, sv / svCentre / svWidth (LM3 route), tracks { tracks, firstTrack, spacing, gauge }, userLanes.
- `loading` (object): Loading (the plugin's Loading step): disciplines (ROAD, FATIGUE, RAIL), groups (gr1a, gr1b, gr3, gr4, gr5 — the road models follow), roadModels / excludedModels, fatigueModels, railModels, lm3Vehicle…
- `readDeck` (boolean): Read the reference line / alignment, width, kerb offset, cross beams and skew from the deck (default on, off over a loaded settings file).
- `reference` (object): Line lanes: the reference line. mode RANGE (range: element ids e.g. '1-10'), GROUP (group), or NODES (nodes: [ids], shape).
- `scope`: ALL = lanes + vehicles + cases; LANES = lanes only; LOADS = vehicles and cases on the model's existing lanes.
- `section` (object): Carriageway cross-section, m: width, kerbOffset, verges, footways, central reserve… width/kerbOffset are read from the deck if omitted.
- `surface` (object): Surface lanes: the alignment. mode GROUP (group), NODES (nodes) or RANGE (range).
- `trafficOtherWay` (boolean): Read the deck the other way round (the plugin's "Traffic runs the other way").
- `unitSwitch` (boolean): Allow switching CIVIL NX to kN, m for the write and back afterwards (needed for non-SI models).
- `writeOptions` (object): Lane write options: loadDist LANE|CROSS, groupName (cross-beam group), moving BOTH|FORWARD|BACKWARD, skewStart, skewEnd (°; read from the deck when omitted).

### `ec_moving_loads_undo` (~89 tokens)

Undo a Eurocode moving-load run

Removes the lanes, vehicles, cases and groups an ec_moving_loads run wrote, using the plugin's own cleanup (cases first, bottom up, at most 100 per call): anything edited since the run, or still used by something else, is kept. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `ec_wind_bridge` (~302 tokens)

EN 1991-1-4 §8 bridge wind loads

Calculates EN 1991-1-4 §8 wind actions on a bridge deck with the Eurocode Wind Loads plugin's own engine: v_b, q_p(z_e), c_sc_d, d_tot, the transverse (x), longitudinal (y) and vertical (z, at e = ±b/4) forces, and the load cases the plugin would write. Needs no model.

Input parameters:

- `bridge` (object, required): Deck inputs, metres. Omitted geometry is measured from the model (ec_wind_apply) — ec_wind_bridge needs b, d, L and groundToSoffit.
- `cdir` (number)
- `co` (number): Orography factor c_o (default 1).
- `cscdOverride` (number|null)
- `cseason` (number)
- `directions` (object): Global load directions to write, e.g. {"Z-": false}. Default: all six (X±, Y±, Z±).
- `nationalAnnex` (string): Built-in annex id; default CEN.
- `returnPeriodYears` (number): Default 50.
- `spanAxis`
- `terrainCategory` (string): 0, I, II (default), III or IV.
- `vb0` (number): Fundamental basic wind velocity v_b,0, m/s (CEN has no map).
- `zEccentric` (boolean)

### `ec_wind_read_deck` (~87 tokens)

Read the deck for wind

Reads the open model the way the Eurocode Wind Loads plugin does: finds the deck (or measures the elements / group given), and reports b, d, L, the soffit height, the span axis, whether the deck is beams or plates, and a structural-form guess. Read-only.

Input parameters:

- `elementIds` (array)
- `group` (string)

### `ec_wind_apply` (~430 tokens)

Write bridge wind loads (Eurocode Wind Loads)

Calculates §8 wind on the deck and writes it with the Eurocode Wind Loads plugin's adapter: one EC1W_ load case per global direction, then beam loads (beam deck) or a pressure + fascia nodal loads (plate deck) on the target elements — one element written and read back first, then the rest, with a direction audit. Target: elementIds, a structure group, or (neither) the deck the plugin finds itself. Previews unless apply: true.

Input parameters:

- `acknowledgeOutOfScope` (boolean): Only with the user's agreement: apply §8 to a form it does not cover.
- `acknowledgeUnverifiedAnnex` (boolean)
- `apply` (boolean)
- `bridge` (object): Deck inputs, metres. Omitted geometry is measured from the model (ec_wind_apply) — ec_wind_bridge needs b, d, L and groundToSoffit.
- `cdir` (number)
- `co` (number): Orography factor c_o (default 1).
- `confirmPlanHash` (string)
- `cscdOverride` (number|null)
- `cseason` (number)
- `directions` (object): Global load directions to write, e.g. {"Z-": false}. Default: all six (X±, Y±, Z±).
- `elementIds` (array)
- `group` (string)
- `lineOfAction`: Transverse wind at mid-height of d_tot (aref) or at the section centroids.
- `nationalAnnex` (string): Built-in annex id; default CEN.
- `returnPeriodYears` (number): Default 50.
- `terrainCategory` (string): 0, I, II (default), III or IV.
- `vb0` (number): Fundamental basic wind velocity v_b,0, m/s (CEN has no map).
- `zEccentric` (boolean): §8.3.3(5): place the vertical force at e = ±b/4.

### `ec_wind_remove` (~76 tokens)

Remove the wind loads

Removes what the Eurocode Wind Loads plugin writes: every EC1W_ load case, its load group, and their beam/pressure/nodal loads — whether this tool or the plugin window wrote them. Loads anyone else put on the same elements are kept. Previews unless apply: true.

Input parameters:

- `apply` (boolean)

### `skew_grillage` (~328 tokens)

Skew Grillage Geometry Generator

Generates a bridge deck (beam grillage or plate mesh) with the Skew Grillage Geometry Generator plugin's own engine: skew, unequal girders, plan curvature, multi-span, crossfall and vertical profile, automatic transverse section sizing and structure groups (GIRDERS, CROSS-BEAMS, END-BEAMS for the support-line members, SPAN-n, or DECK for plates). Without apply it only previews (counts, metrics, groups, planHash). With apply: true it writes to CIVIL NX exactly as the plugin does: it refuses a model that already holds geometry unless replaceExisting is set, creates default material/sections/thickness where the ids are missing, and records the run for skew_grillage_undo.

Input parameters:

- `allowDefaultProperties` (boolean): Create a default C30-like material and rectangular sections/thickness when the ids are not in the model.
- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `autoTransverseSections` (boolean): One transverse section per measured tributary width (beam decks).
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `geometry` (object): Deck inputs, named as in the plugin. Anything omitted takes the plugin form's default. Lengths in metres, angles in degrees.
- `replaceExisting` (boolean): DESTRUCTIVE: delete all nodes, elements, sections, thicknesses, materials and structure groups first. Only with the user's explicit agreement.
- `structureGroups` (boolean)

### `skew_grillage_undo` (~89 tokens)

Undo a Skew Grillage run

Removes the deck a skew_grillage run wrote (its elements, nodes, new structure groups and any default properties nothing else uses). Refuses while lanes, other groups or other elements still depend on it. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string): Ledger run id; default = the latest skew_grillage run not yet undone.

### `combination_tree` (~270 tokens)

Combinations: list them, or show one's tree

Load Combination Contribution Analyzer, step 1. Without name: lists the model's General-tab load combinations (LCOM-GEN) with type (ADD, ENVELOPE, ABS, SRSS), constituent count, whether it is a max/min pair, and whether it can be decomposed (refused: time-history, unknown analysis type, undefined constituents, self-reference, a constituent whose type differs from the case of that name) — plus the result tables the model has items for (BEAM, TRUSS, PLATE, ELASTICLINK, GENLINK, REACTION, DISPLACEMENT) with their components and units, structure groups, construction stages and the model's units. With name: that combination's full tree (nested combinations, factors, kinds), the effective factor of every load case over all Add paths (a case reached down several branches gets the sum of the path products), and the envelopes / ABS / SRSS inside it. Read-only.

Input parameters:

- `limit` (integer)
- `name` (string): A combination to show in full. Omit to list them all.
- `search` (string): Only combinations whose name contains this (case-insensitive).
- `units` (object): Units to report in (CIVIL NX converts). Default: the model's own.

### `combination_contributions` (~651 tokens)

Which load cases make up a combination's result

Load Combination Contribution Analyzer, step 2. Splits one or more load combinations' results at a set of items into the load cases that produced them: for every item, output point (beam I/J and intermediate points, plate nodes and centre), component and max/min, the signed contribution of each case, its share of the gross, and the governing permutation written out with factors multiplied down (e.g. 1.35*Self weight(ST) + 1.5*LM1(MV:max)). Add superposes; an Envelope is resolved to the child that governs at each item (the governing child is counted per envelope); ABS gives |f·R| shares; SRSS energy shares. Moving-load, settlement and response-spectrum cases enter at their max or min end. Construction-stage cases are read at the final stage's last step. Cases are identified by type and name together. EVERY item is recomposed and must match the value CIVIL NX reports for the combination at the same item, part, component and sense — if any does not, the run stops and nothing is reported. Returns per combination: the cases ranked by share of the gross over the run, cases zero everywhere, envelope governing counts, and the critical item (largest |value|) per component and sense with its full breakdown; rows largest |value| first; csv: true stores every row. Tables: BEAM, TRUSS, PLATE (per unit length, local axes), ELASTICLINK, GENLINK, REACTION (supported nodes only — CIVIL NX answers other nodes with a made-up total; zero reaction rows it omits are read as zero), DISPLACEMENT. Items in set syntax (elements 101to148, nodes N1toN20, general links L5, elastic links EL7) and/or structure groups (for node tables: the group's nodes plus the nodes of its elements). Read-only (only /post/TABLE reads). Runs as a job on the website.

Input parameters:

- `combinations` (required): One General-tab combination name, or up to 10 decomposed at the same items in the same run.
- `components` (array): Components to decompose (table column names, e.g. Moment-y, Shear-z, FZ, DZ, Mxx). Default: all of the table's.
- `csv` (boolean): Also store every row with every case's contribution as a CSV and return its link.
- `groups` (array): Structure group names to add to the set.
- `items` (string): Items in set syntax, e.g. "101to148", "N9001toN9006", "EL1toEL10". Typed ids must exist and be of the table's kind; ranges keep only what fits.
- `maxRows` (integer): At most this many rows inline (largest |value| first).
- `sense` (string): For max/min-pair combinations: which end(s). Ignored for single-valued ones.
- `table` (string, required): Which result table to decompose.
- `units` (object): Units to report in (CIVIL NX converts). Default: the model's own.

### `midas_library` (~426 tokens)

MIDAS libraries: materials, sections, elements

Structured reference for writing a CIVIL NX model through the API (civil_write_tables): the material standard names CIVIL NX knows (46 concrete standards), material fields per type, grades known to work, every user section shape with the order of its dimensions (vSIZE), catalogue section examples, plate thickness, beam / truss / plate element rows and plate STYPE codes, support constraint strings, load case / self weight / nodal load / combination rows, creep-shrinkage and strength-gain code options — each with its source: MIDAS IT's open-source midas-civil-python library (MIT), the MIDAS API manual, or behaviour measured on live CIVIL NX. Also every option list in midas-civil-python (148): the 67 static load case types, beam / pressure / plane load options, combination types, the 15 moving-load codes with their standard vehicles (Eurocode LM1–LM4 incl. UK NA SV/SOV, fatigue and rail; Indian road and rail), point springs and elastic links, temperature, tendons and prestress, construction stages, response spectrum / time history, units and result components. The grade lists inside each standard and the steel section catalogues are CIVIL NX's own and published nowhere: the answer says how to confirm one safely. Topics: overview, materials, sections (shape: one shape), thickness, elements, supports, loads, moving_loads, boundaries, temperature, tendons, construction, dynamic, units, results, time_dependent, python; search alone looks through every list and vehicle. Needs no model and no account.

Input parameters:

- `search` (string): With topic materials: only standards / grades containing this ("EN", "C40"). Alone or with topic search: every option list and vehicle in the library whose name or values contain it ("LM1", "SV 196",…
- `shape` (string): sections: one user shape code, e.g. SB, H, B, P.
- `topic` (string)

### `civil_status` (~69 tokens)

CIVIL NX connection and model summary

Checks the MAPI connection to CIVIL NX and summarises the open model: units, moving load code, row counts per table, structure/boundary/load group names, static load cases, stages, general combinations, and the most recent runs recorded for this key. Read-only. Call this first.

### `civil_read_table` (~133 tokens)

Read a CIVIL NX table

Reads one MIDAS database table (GET /db/<TABLE>) from the open model, e.g. NODE, ELEM, SECT, GRUP, STLD, STAG, LLAN, MVLDBS, LCOM-GEN. Returns rows keyed by id: the ids asked for, or the first `limit` rows. Read-only.

Input parameters:

- `ids` (array): Row ids to return. Omit for the first `limit` rows.
- `limit` (integer)
- `table` (string, required): Table key, e.g. NODE, ELEM, GRUP, STAG.

### `job_status` (~47 tokens)

Status of a long-running tool call

Status, progress and (when finished) the result of a tool call that returned a jobId. Poll every few seconds until status is done or failed.

Input parameters:

- `jobId` (string, required)

### `model_qc_check` (~246 tokens)

Model QC checks (Model Report)

Runs the Model Report plugin's fourteen quality checks on the open CIVIL NX model: duplicate (coincident) nodes, orphan nodes, zero-length and duplicate elements, elements without material/section, unused properties, disconnected regions, support adequacy, load cases with no loads, loads on missing nodes/elements, combinations citing a missing case, elements in no structure group, length outliers and end releases that make a mechanism. Returns each check's result (pass / fail / not applicable / not run), severity, criterion, count and the ids involved, a model summary (counts, units) and what was read from each table. Reads only the tables the checks use (GET only). Read-only; on the website it runs as a job.

Input parameters:

- `language` (string): Language of the check wording / the report: English, French, German, Greek, Polish.
- `maxIds` (integer): Ids listed per check.
- `outlierFactor` (number): An element longer or shorter than the median length by this factor is an outlier.
- `toleranceMm` (number): Nodes closer than this (mm, 3D) count as coincident.

### `model_report_images` (~103 tokens)

Pictures the model report can carry

Lists the CIVIL NX pictures the Model Report can put in this model's report, with their keys: FE model views (iso, plan, front, side), the applied loads of each static load case, the figures saved in the model (/db/UFIG), and the beam diagrams on offer (each static case, combination and construction-stage part × components Fx…Mw). Pick from them with model_report_export images. Read-only (GET only); nothing is rendered.

### `model_report_export` (~405 tokens)

Model report document (HTML, Excel, Word, PDF)

Builds the Model Report plugin's 'Model report' for the open CIVIL NX model — cover, contents, materials, sections (with drawings), supports and springs, load cases, combinations and loads, nodes/elements/groups appendix, cross sections, tendons, CIVIL NX pictures, the QC checks and the data sources read — and returns it as download links: html (default), xlsx, docx and/or pdf, in English, French, German, Greek or Polish. Document details (project, client, job no., revision, author, checker, date …) go on the cover. Pictures are rendered by CIVIL NX (POST /view/CAPTURE, the user's own view is left as it is): by default the isometric model view and every figure saved in the model; choose model views, load views, saved figures and beam diagrams with `images` (model_report_images lists them), and the beam diagrams' legend format (exponential/fixed, decimals) there too. Otherwise reads only (GET, plus POST /post/TABLE for tendon coordinates). Runs as a job.

Input parameters:

- `details` (object): Document details printed on the cover (all optional).
- `formats` (array)
- `images`: Pictures CIVIL NX renders into the report. "none" for none; otherwise an object (omitted fields keep the defaults: modelViews ["iso"], savedFigures "all").
- `language` (string): Language of the check wording / the report: English, French, German, Greek, Polish.
- `numbering` (boolean): Number chapters and figures.
- `outlierFactor` (number): An element longer or shorter than the median length by this factor is an outlier.
- `tendonCoordinates` (boolean): Read the computed tendon coordinate table (needs an analysed model) when the report has tendons.
- `toleranceMm` (number): Nodes closer than this (mm, 3D) count as coincident.

### `model_bridge_summary` (~254 tokens)

Model to IFC — what the exporter sees

Reads the open model's geometry tables and CIVIL NX's computed section properties and reports the bridge the Model to IFC plugin finds in it: girder lines, piers and pylons (station, elements, bearings, foundations), abutments, bearings, the deck alignment and its line/arc fit, the joined deck, every section in use with how its outline was rebuilt and its area difference from CIVIL NX, tendons, weightless members left out, volumes per material. Read-only; writes no file. Use it before model_to_ifc / model_to_dxf, or to sanity-check a model.

Input parameters:

- `joinDeck` (boolean): Join side-by-side girders' slab strips into one continuous deck.
- `name` (string): File / model name (default: the model's project name).
- `separateSlabs` (boolean): A composite section's deck slab as its own slab.
- `skipWeightless` (boolean): Leave out weightless (dummy) members; cables, piles and members named NoSW are kept.
- `startStation` (number): Chainage at the start of the deck, m.
- `tendons` (boolean): Tendons drawn at their duct diameter.

### `model_to_ifc` (~694 tokens)

Model to IFC — export the model to IFC4 / IFC4.3

Exports the open CIVIL NX model to IFC with the Model to IFC plugin: real section outlines with voids, smooth tapers, tendons, composite deck slabs, materials, structure groups and stages; in IFC4.3 also the bridge structure (deck, piers, abutments, bearings, alignment); optionally the structural analysis model with loads, combinations, support reactions, and — for the series named in resultSeries — node displacements and member/plate forces; optionally a second file of the deformed shape for one load case or combination. Only reads the model. Returns download links (never the file inline) and the exporter's report (sections, volumes, bridge parts, checks). Results are read on demand and can take long on big models (one live model: 40 s for all displacements), which is why this runs as a job.

Input parameters:

- `analysis` (boolean): Include the structural analysis model (nodes, supports, members, links).
- `classification` (object): {name, edition, codes: {<role>: {code, title}}} e.g. Uniclass codes per role (girder, deck slab, pier stem, pier cap, abutment wall, pile, bearing, tendon…).
- `colours` (boolean)
- `deformed` (object): {series, scale}: also write the deformed shape for one load case or combination as its own IFC (scale omitted = automatic, the largest movement drawn at about 5% of the bridge's size).
- `displacements` (boolean): With resultSeries: node displacements.
- `georef` (object): {crs (e.g. EPSG:27700), eastings, northings, height, rotation (deg), scale}: IfcMapConversion. Omitted = none.
- `groups` (boolean)
- `joinDeck` (boolean): Join side-by-side girders' slab strips into one continuous deck.
- `linearPlacement` (boolean): IFC4.3 only: place members along the alignment (IfcLinearPlacement).
- `loads` (boolean): Load cases, self-weight, nodal/beam/pressure loads and combinations (with analysis).
- `memberForces` (boolean): With resultSeries: beam forces.
- `name` (string): File / model name (default: the model's project name).
- `plateForces` (boolean): With resultSeries: plate forces.
- `reactions` (boolean): Support reactions for every analysed series (with analysis; needs an analysed model).
- `resultSeries` (array): Load cases / combinations (exact names) whose results to add: node displacements and member and plate forces. None by default — they multiply by elements × points × series.
- `schema`: IFC4: Revit, Navisworks, Tekla, Solibri. IFC4X3: the bridge model (IfcBridge parts, bearings, alignment).
- `separateSlabs` (boolean): A composite section's deck slab as its own slab.
- `skipWeightless` (boolean): Leave out weightless (dummy) members; cables, piles and members named NoSW are kept.
- `stages` (boolean): Construction stages as groups.
- `startStation` (number): Chainage at the start of the deck, m.
- `tendons` (boolean): Tendons drawn at their duct diameter.

### `model_to_dxf` (~500 tokens)

Model to IFC — DXF drawings and 3D DXF

Draws the open CIVIL NX model as DXF with the Model to IFC plugin's drawing engine: a 2D drawing file (DXF 2000: plan, elevation developed along the deck, hidden-line isometric, section cuts with hatched faces and tendon ducts, and every section in use dimensioned) and a 3D DXF (one polyface mesh per element, layered by role, DXF 2000 or R12). Cuts are given in metres: {kind:'cross', at: chainage} across the deck, {kind:'long', at: offset left of the centreline}, {kind:'level', at: height}, with depth = how far beyond the cut to draw; none given = one across mid-span, cutsAtSupports adds one at each pier and abutment. Only reads the model; returns download links.

Input parameters:

- `cuts` (array)
- `cutsAtSupports` (boolean)
- `drawings2d` (boolean)
- `format3d`: R12 is about half the size (Autodesk Viewer may show it empty).
- `hidden` (boolean): Hidden lines dashed in plan and elevation.
- `joinDeck` (boolean): Join side-by-side girders' slab strips into one continuous deck.
- `labels` (boolean): Chainages, labels and dimensions.
- `max3dMegabytes` (number): Skip the 3D file (and say so) if it would be larger than this.
- `model3d` (boolean): Also write the 3D DXF.
- `name` (string): File / model name (default: the model's project name).
- `separateSlabs` (boolean): A composite section's deck slab as its own slab.
- `skipWeightless` (boolean): Leave out weightless (dummy) members; cables, piles and members named NoSW are kept.
- `startStation` (number): Chainage at the start of the deck, m.
- `tendons` (boolean): Tendons drawn at their duct diameter.
- `units`: Drawing unit (dimensions); levels and chainages are labelled in m (ft for imperial).
- `views` (array): Which 2D views (default all: plan, elevation, iso, cuts, sections).
- `wireframe` (boolean): 3D: element centrelines and plate outlines on a non-plotting layer.

### `create_nodes` (~554 tokens)

Node Generator — create nodes

Creates nodes in the open CIVIL NX model from X, Y, Z coordinates with the Node Generator plugin's own engine: every check the plugin window makes (blank or non-numeric coordinates, bad or duplicate ids, ids above 999999, ids that already exist, coincident nodes within a tolerance), its numbering modes and its write rules. Give the points as nodes [{id?, x, y, z}] or as table (text pasted from Excel or a CSV; a header like ID,X,Y,Z is recognised, decimal commas and semicolon CSVs too). Coordinates are in inputUnit (m or mm) plus an optional origin offset, and are converted to the model's length unit. numbering: 'auto' continues after the highest existing node id; 'start' uses start + increment; 'column' keeps the ids given (default when every row has one). An id that already exists blocks the write unless overwrite: true, which MOVES those nodes (and the elements on them). Coincident nodes are reported first; choose coincident: 'skip' or 'create'. Previews unless apply: true with confirmPlanHash; new nodes go by POST (create-only, so a node made since the preview is never overwritten), overwrites by PUT, then db/NODE is read back. create_nodes_undo reverses it.

Input parameters:

- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `coincident`: report = preview only; skip = leave coincident rows out; create = create them anyway.
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `decimal`: Decimal mark in table text; AUTO detects it.
- `increment` (integer): numbering 'start': step between ids.
- `inputUnit`: Unit of the coordinates, the origin offset and the tolerance.
- `nodes` (array): Points: {x, y, z} or {id, x, y, z}; [x, y, z] and [id, x, y, z] arrays also work.
- `numbering`
- `origin` (object): Added to every coordinate (input unit).
- `overwrite` (boolean): Move existing nodes whose id is in the input to the new coordinates. Only with the user's agreement.
- `start` (integer): numbering 'start': first id.
- `table` (string): Instead of nodes: tab-, comma- or semicolon-separated text, one node per line (ID, X, Y, Z or X, Y, Z), optional header row.
- `tolerance` (number): Coincidence tolerance, input unit.

### `create_nodes_undo` (~105 tokens)

Undo a create_nodes run

Reverses a create_nodes run from the ledger: deletes the nodes it created and moves every node it overwrote back to its earlier coordinates. Refuses while elements, structure groups or supports use the nodes it created (undo those first). Default: the latest create_nodes run not yet undone. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string): Ledger run id; default = the latest create_nodes run not yet undone.

### `pd6694_route_a` (~650 tokens)

PD 6694-1 Route A earth pressures

PD 6694-1 integral abutment earth pressures by the limit-equilibrium route (K*, cl.9.4.3/9.4.4) with the PD 6694-1 Integral Abutment plugin's own engine: thermal movement and design displacement, the route (A1/A2, or B / review when Annex A is needed), applicability checks, coefficients, and the four states EXPMAX/EXPMIN/CONMAX/CONMIN (force, peak pressure, resultant, moment per metre). Needs no model.

Input parameters:

- `abutment` (object)
- `abutmentType` (string): "frame" (full-height frame, default), "bank pad", "end screen" or "embedded" (embedded walls are outside the K* method).
- `alphaMicro` (number): Thermal coefficient ×1e-6 /°C (default 12).
- `expansionLength` (number): Length to the point of zero movement, m (default 60).
- `gammaBulk` (number): Backfill bulk unit weight, kN/m³ (default 18; typical 18 to 20).
- `gammaQ` (number): γQ, cl.9.4.2 partial factor on the thermal movement (default 1, the unfactored case; expected 1 to 1.5).
- `gammaSat` (number): Backfill saturated unit weight, kN/m³ (default 20; not below gammaBulk).
- `hasWaterTable` (boolean): A water table behind the wall (default false); its depth is waterTableDepth.
- `nAbutmentsSharing` (number): Abutments sharing the movement (default 2).
- `override` (object|null): Engineer's route override {route, engineer, reason} — only with the user's justification.
- `phiCritDeg` (number): Backfill φ'crit (default 32).
- `phiInferiorDeg` (number|null): Inferior φ' for K0,max, degrees (default null = phiCritDeg).
- `phiPeakDeg` (number): Backfill φ'peak (default 35).
- `phiSuperiorDeg` (number|null): Superior φ' for K0,min, degrees (default null = phiPeakDeg). Must not be below phiInferiorDeg.
- `psi` (number): ψ, cl.9.4.2 combination factor on the thermal movement (default 1, the unfactored case).
- `skewDeg` (number): Skew, degrees (default 0). 0 to 30 for the K* method; the SSI route needs a square wall.
- `surchargeKpa` (number): Surcharge added to σ'v behind the wall at every depth, kPa (default 0).
- `tMax` (number): Max effective bridge temperature, °C (default 37).
- `tMin` (number): Min effective bridge temperature, °C (default -2).
- `waterTableDepth` (number): Water table depth below the retained surface, m (default 2; used only when hasWaterTable).

### `pd6694_route_a_write` (~675 tokens)

Write PD 6694 Route A pressures

Writes the four PD 6694 limit-equilibrium states as plate pressures on one or two abutment wall groups, exactly as the plugin's Write button: same-model guard, the PD6694 EP load cases and groups, pressure items (other loads on the plates kept), then verification of the totals against the calculation; optionally activates them in a construction stage. Previews unless apply: true.

Input parameters:

- `abutmentType` (string): "frame" (full-height frame, default), "bank pad", "end screen" or "embedded" (embedded walls are outside the K* method).
- `abutments` (array, required): One or two abutment walls, each {group, retainedHeight, loadedWidth, foundationType}; group is required.
- `alphaMicro` (number): Thermal coefficient ×1e-6 /°C (default 12).
- `apply` (boolean)
- `confirmPlanHash` (string)
- `expansionLength` (number): Length to the point of zero movement, m (default 60).
- `gammaBulk` (number): Backfill bulk unit weight, kN/m³ (default 18; typical 18 to 20).
- `gammaQ` (number): γQ, cl.9.4.2 partial factor on the thermal movement (default 1, the unfactored case; expected 1 to 1.5).
- `gammaSat` (number): Backfill saturated unit weight, kN/m³ (default 20; not below gammaBulk).
- `hasWaterTable` (boolean): A water table behind the wall (default false); its depth is waterTableDepth.
- `nAbutmentsSharing` (number): Abutments sharing the movement (default 2).
- `override` (object|null): Engineer's route override {route, engineer, reason} — only with the user's justification.
- `phiCritDeg` (number): Backfill φ'crit (default 32).
- `phiInferiorDeg` (number|null): Inferior φ' for K0,max, degrees (default null = phiCritDeg).
- `phiPeakDeg` (number): Backfill φ'peak (default 35).
- `phiSuperiorDeg` (number|null): Superior φ' for K0,min, degrees (default null = phiPeakDeg). Must not be below phiInferiorDeg.
- `psi` (number): ψ, cl.9.4.2 combination factor on the thermal movement (default 1, the unfactored case).
- `skewDeg` (number): Skew, degrees (default 0). 0 to 30 for the K* method; the SSI route needs a square wall.
- `stageId` (integer|null): Construction stage id to activate the four cases in.
- `surchargeKpa` (number): Surcharge added to σ'v behind the wall at every depth, kPa (default 0).
- `tMax` (number): Max effective bridge temperature, °C (default 37).
- `tMin` (number): Min effective bridge temperature, °C (default -2).
- `waterTableDepth` (number): Water table depth below the retained surface, m (default 2; used only when hasWaterTable).

### `pd6694_route_a_remove` (~60 tokens)

Remove PD 6694 Route A cases

Removes the four PD6694 EP limit-equilibrium load cases with their pressures, load groups and stage activations (the plugin's Remove). Other load cases are kept. Previews unless apply: true.

Input parameters:

- `apply` (boolean)

### `pd6694_ssi_plan` (~785 tokens)

Plan a PD 6694 Annex A (SSI) run

Read-only: changes nothing in the model. Call it before pd6694_ssi_run, with the same inputs, to check that the PD 6694-1 Annex A soil-structure interaction run can go ahead — it uses the plugin's own planner. Needs abutments[].group (the wall plates' structure group) and ssi.deckGroup; the soil and thermal inputs default to the plugin's values. Returns: abutments (per wall group: plates, spring nodes, piles), deltaK (the spring stiffness range), errors (blockers — pd6694_ssi_run refuses to start while any remain) and warnings (allowed, but worth showing the user).

Input parameters:

- `abutmentType` (string): "frame" (full-height frame, default), "bank pad", "end screen" or "embedded" (embedded walls are outside the K* method).
- `abutments` (array, required): One or two abutment walls, each {group, retainedHeight, loadedWidth, foundationType}; group is required.
- `alphaMicro` (number): Thermal coefficient ×1e-6 /°C (default 12).
- `expansionLength` (number): Length to the point of zero movement, m (default 60).
- `gammaBulk` (number): Backfill bulk unit weight, kN/m³ (default 18; typical 18 to 20).
- `gammaQ` (number): γQ, cl.9.4.2 partial factor on the thermal movement (default 1, the unfactored case; expected 1 to 1.5).
- `gammaSat` (number): Backfill saturated unit weight, kN/m³ (default 20; not below gammaBulk).
- `hasWaterTable` (boolean): A water table behind the wall (default false); its depth is waterTableDepth.
- `nAbutmentsSharing` (number): Abutments sharing the movement (default 2).
- `override` (object|null): Engineer's route override {route, engineer, reason} — only with the user's justification.
- `phiCritDeg` (number): Backfill φ'crit (default 32).
- `phiInferiorDeg` (number|null): Inferior φ' for K0,max, degrees (default null = phiCritDeg).
- `phiPeakDeg` (number): Backfill φ'peak (default 35).
- `phiSuperiorDeg` (number|null): Superior φ' for K0,min, degrees (default null = phiPeakDeg). Must not be below phiInferiorDeg.
- `psi` (number): ψ, cl.9.4.2 combination factor on the thermal movement (default 1, the unfactored case).
- `skewDeg` (number): Skew, degrees (default 0). 0 to 30 for the K* method; the SSI route needs a square wall.
- `ssi` (object): Annex A settings, as the plugin's SSI tab: deckGroup (required), stageId, suspendGroups, piles [{pileGroup, pileTributaryWidth, excavationLevel}], movementConvention, foundationC, groundPhi, groundGa…
- `surchargeKpa` (number): Surcharge added to σ'v behind the wall at every depth, kPa (default 0).
- `tMax` (number): Max effective bridge temperature, °C (default 37).
- `tMin` (number): Min effective bridge temperature, °C (default -2).
- `waterTableDepth` (number): Water table depth below the retained surface, m (default 2; used only when hasWaterTable).

### `pd6694_ssi_run` (~748 tokens)

Run PD 6694 Annex A (SSI)

Runs the PD 6694-1 Annex A iteration with the plugin's own runner: Winkler springs on the walls (multi-linear), repeated analyses until the wall displacements settle, then the two design pressure cases written and the analysis set-up removed — keeping a backup of the model's own springs for undo. Takes minutes: on the website it runs as a job (poll job_status). Previews unless apply: true.

Input parameters:

- `abutmentType` (string): "frame" (full-height frame, default), "bank pad", "end screen" or "embedded" (embedded walls are outside the K* method).
- `abutments` (array, required): One or two abutment walls, each {group, retainedHeight, loadedWidth, foundationType}; group is required.
- `alphaMicro` (number): Thermal coefficient ×1e-6 /°C (default 12).
- `apply` (boolean)
- `confirmPlanHash` (string)
- `expansionLength` (number): Length to the point of zero movement, m (default 60).
- `gammaBulk` (number): Backfill bulk unit weight, kN/m³ (default 18; typical 18 to 20).
- `gammaQ` (number): γQ, cl.9.4.2 partial factor on the thermal movement (default 1, the unfactored case; expected 1 to 1.5).
- `gammaSat` (number): Backfill saturated unit weight, kN/m³ (default 20; not below gammaBulk).
- `hasWaterTable` (boolean): A water table behind the wall (default false); its depth is waterTableDepth.
- `nAbutmentsSharing` (number): Abutments sharing the movement (default 2).
- `override` (object|null): Engineer's route override {route, engineer, reason} — only with the user's justification.
- `phiCritDeg` (number): Backfill φ'crit (default 32).
- `phiInferiorDeg` (number|null): Inferior φ' for K0,max, degrees (default null = phiCritDeg).
- `phiPeakDeg` (number): Backfill φ'peak (default 35).
- `phiSuperiorDeg` (number|null): Superior φ' for K0,min, degrees (default null = phiPeakDeg). Must not be below phiInferiorDeg.
- `psi` (number): ψ, cl.9.4.2 combination factor on the thermal movement (default 1, the unfactored case).
- `skewDeg` (number): Skew, degrees (default 0). 0 to 30 for the K* method; the SSI route needs a square wall.
- `ssi` (object): Annex A settings, as the plugin's SSI tab: deckGroup (required), stageId, suspendGroups, piles [{pileGroup, pileTributaryWidth, excavationLevel}], movementConvention, foundationC, groundPhi, groundGa…
- `surchargeKpa` (number): Surcharge added to σ'v behind the wall at every depth, kPa (default 0).
- `tMax` (number): Max effective bridge temperature, °C (default 37).
- `tMin` (number): Min effective bridge temperature, °C (default -2).
- `waterTableDepth` (number): Water table depth below the retained surface, m (default 2; used only when hasWaterTable).

### `pd6694_ssi_remove` (~62 tokens)

Remove PD 6694 SSI results

Removes everything an SSI run left (design pressure cases, spring groups, analysis cases) and restores the model's own springs from the run's backup (the plugin's Remove SSI). Previews unless apply: true.

Input parameters:

- `apply` (boolean)

### `point_to_patch_dispersal` (~325 tokens)

Wheel load dispersal to a patch

The Point to Patch Convertor's dispersal for one point load: the code's contact area (or the load-derived one), the spread through surfacing and slab to the mid-plane or neutral axis, the effective patch b_eff × l_eff and its pressure, with the clause. Presets cover EN 1991-2 LM1/LM2, the UK NA, CS 454 / HB, BS 5400 and Network Rail ballast/fill. Needs no model.

Input parameters:

- `alphaC` (number): Half-angle through the concrete, °.
- `alphaCLong` (number)
- `alphaS` (number): Half-angle from vertical through the surfacing, ° (0 is honoured).
- `alphaSLong` (number)
- `b0` (number): Contact width across the traffic, m (null = the preset's).
- `l0` (number): Contact length along the traffic, m.
- `load` (number): Point load, kN (needed for load-derived presets and the pressure).
- `neutralAxisDepth` (number): m below the top, for NEUTRAL_AXIS.
- `presetId` (required): Contact area and spread rule (EN 1991-2, UK NA, CS 454, BS 5400, Network Rail…; point_to_patch_read lists them with their clauses).
- `targetPlane`
- `tc` (number): Slab depth, m (apply: default the plate thickness).
- `ts` (number): Surfacing / ballast / fill depth, m.

### `point_to_patch_read` (~101 tokens)

Read the model for patch loads

Reads the open model as the Point to Patch Convertor does: whether the deck is plates or a grillage, its levels and groups, the point loads (nodal and beam concentrated) per load case that could be dispersed, any PATCH_ cases already written, and every preset with what it still needs. Read-only.

Input parameters:

- `active` (object): Limit to elements: { groups: [names], useZ, zMin, zMax }.

### `point_to_patch_apply` (~301 tokens)

Disperse point loads into patch loads

Converts the model's point loads (or a coordinate table) into dispersed patch loads with the Point to Patch Convertor's engine and writes them as PATCH_<case> load cases: plate decks get pressures on the plates the patch covers, grillages get UDLs on the members by the lever rule, total force conserved; units converted to the model's. The writer snapshots every row it touches, writes, and reads every item back with a force-equilibrium check. Previews unless apply: true.

Input parameters:

- `acceptBlockers` (boolean): Accept OVERRIDABLE blockers (the plugin's "Write anyway") — only with the user's agreement.
- `active` (object): Elements the patches may load: { groups: [names], useZ, zMin, zMax }.
- `apply` (boolean)
- `confirmPlanHash` (string)
- `conserveForce` (boolean)
- `direction`
- `dispersal` (object, required)
- `kind`
- `output` (object)
- `rail` (object)
- `rotationDeg` (number): Traffic direction from global +X, °.
- `source` (object): mode MODEL (default: nodal and beam concentrated loads; lcNames to pick cases, owners, minMagnitude) or MANUAL (manualText: one load per line 'X, Y, P[, Z]' in kN and m; manualCase names the case).

### `point_to_patch_undo` (~86 tokens)

Undo a patch-load run

Undoes the latest point_to_patch_apply run (or the run named) with the plugin's cleanup: every PRES / BMLD row the run touched is put back as it was, the PATCH_ cases it removed are restored and the ones it created deleted. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `civil_loads_supports` (~807 tokens)

Supports and loads in one call

The fast way to add supports, point springs, beam end releases, self-weight, nodal loads, beam UDLs, plate pressures and element temperatures: describe WHERE (structure group, id ranges, a line, a box, a coordinate, or the extreme nodes of a group) and WHAT, and the tool finds the nodes / elements and builds the CONS, CNLD, BMLD and PRES rows itself — no table lookup, no reading NODE / ELEM, no rows to write. Values are in kN and m by default (units: { force, length }) and converted to the model's units; signs follow the global axes (w: -10 with dir GZ = 10 kN/m downward). Missing load cases (STLD), load groups and boundary groups are created. Examples: supports [{ at: { group: "GIRDERS", pick: "xmin" }, type: "pinned" }, { at: { group: "GIRDERS", pick: "xmax" }, type: "roller-x" }]; udl [{ on: { group: "GIRDERS" }, case: "SIDL", w: -12.5 }]; udl with range { axis: "x", from: 10, to: 20 } loads only that stretch; nodalLoads [{ at: { nodes: "101to121by2" }, case: "Wheel", F: [0, 0, -50] }]; pressure [{ on: { group: "DECK" }, case: "Surfacing", p: -2.4 }]; springs [{ at: { group: "PIERS", pick: "zmin" }, k: [1e5, 1e5, 5e5] }]; releases [{ on: { group: "CROSS-BEAMS" }, free: "My Mz" }]; selfWeight [{ case: "SW" }]; temperature [{ on: { group: "DECK" }, case: "T+", uniform: 15, gradientZ: 10 }]. The preview is a summary — counts, ids, and total force per load case to check against the intended load. Apply with apply: true and confirmPlanHash; every row is read back. Undo with civil_write_tables_undo (same ledger). Rules kept for you: CIVIL NX keeps one nodal load per case per node, so loads landing on the same node and case are summed (also with an existing one, with a warning); an existing support on a node is replaced; existing beam loads and pressures are kept and the new ones added.

Input parameters:

- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `cases` (array): Optional types for load cases this call creates: [{ name, type: D | DC | DW | L | W | T | USER … }].
- `confirmPlanHash` (string): planHash from the approved preview; refused if the model or the inputs changed.
- `nodalLoads` (array)
- `pressure` (array)
- `releases` (array): Beam end releases (pins in cross-beams, hinges): replaces a release already on the element.
- `selfWeight` (array): Self-weight of the whole model in a load case (from the materials' density).
- `springs` (array): Linear point springs (bearings, piles): one per node, replacing a spring already there.
- `supports` (array)
- `temperature` (array): Element temperatures in °C, converted if the model works in °F. For EN 1991-1-5 / CS 454 bridge temperatures computed for you, use bridge_thermal_apply.
- `udl` (array)
- `units` (object): Units of the values AND of the selection coordinates. Default kN and m.

### `civil_combinations_quick` (~259 tokens)

Load combinations from factors

Writes general load combinations from plain factors, e.g. { name: "ULS1", factors: { "SW": 1.35, "SDL": 1.35, "LM1": 1.5 } } — for hand-picked combinations; for the full code set use ec_combinations_apply / cs454_combinations_apply. Each name is looked up: static load cases (ST), moving-load cases (MV) and existing combinations (CB) are recognised, and a combination made in the same call can be used in a later one; write "CS:<name>" for a construction-stage result, or a prefix when a name is in two places. type: add (default), envelope, abs, srss. Names ≤ 20 characters; a case listed twice is refused (CIVIL NX refuses the whole write). An existing name is refused unless replaceExisting: true. Previews unless apply: true with confirmPlanHash; civil_write_tables_undo reverses it.

Input parameters:

- `apply` (boolean)
- `combinations` (array, required)
- `confirmPlanHash` (string)
- `replaceExisting` (boolean): Overwrite combinations that already have these names. Only with the user's agreement.

### `civil_remove_loads` (~273 tokens)

Remove loads, supports or load cases

Takes loads out of the model without touching other load cases: CIVIL NX keeps every case's beam loads, nodal loads, pressures and temperatures of an element or node in ONE row, so a plain delete would take the other cases with it — this tool rewrites each row with the items that stay. loads [{ case, on | at (optional selection; default everywhere), kinds (optional: nodal, udl, pressure, temperature, gradient, selfWeight) }] removes that case's loads; deleteCases [names] removes the cases' loads and then the load cases themselves; supports { at }, springs { at }, releases { on } remove those at the selected nodes / elements. Selections as in civil_loads_supports. Previews what goes (counts per kind, rows touched, combinations that would lose a case); apply: true with confirmPlanHash. civil_write_tables_undo puts everything back, load cases included.

Input parameters:

- `apply` (boolean)
- `confirmPlanHash` (string)
- `deleteCases` (array): Load cases to delete, with all their loads.
- `loads` (array)
- `releases` (object)
- `springs` (object)
- `supports` (object)
- `units` (object): Length unit of selection coordinates.

### `slab_capacities_from_bars` (~425 tokens)

RC slab capacities from bars

Calculation only: needs no model and changes nothing. Turns a slab's bar arrangement into the capacities the RC Slab & Shell Assessment routes need, with the plugin's own core. Use it to check a reinforcement layout by hand, or to see the capacities slab_assess will derive when given the same bars; to assess a model's plate forces use slab_assess (slab_explain_location for one element), and for a beam section cs455_assess. Give thickness_mm, fck and at least one face (top / bottom: cover_mm and one layer per bar direction); partial factors default to γc 1.5, γs 1.15, αcc 0.85, fyk 500 MPa. Returns per layer area, d, x, z, moment capacity (kNm/m) and force (kN/m), plus `assess` — ready to pass on: the Denton/Wood-Armer capacity pairs (top/bottom), the four Annex LL steel forces and the covers to the reinforcement centroid.

Input parameters:

- `alpha_cc` (number): Long-term coefficient αcc on fck for the flexural capacities (default 0.85, UK NA).
- `bottom` (object): One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.
- `fck` (number, required): Concrete characteristic cylinder strength, MPa.
- `fyk` (number): Reinforcement yield strength, MPa (default 500).
- `gamma_c` (number): Concrete partial factor γc (default 1.5).
- `gamma_s` (number): Reinforcement partial factor γs (default 1.15).
- `thickness_mm` (number, required): Slab thickness, mm.
- `top` (object): One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.

### `slab_survey` (~98 tokens)

Survey plates and load cases for slab assessment

Reads the open model's plates (ELEM/NODE), structure groups, static cases and combinations (all LCOM tables) the way the RC Slab & Shell Assessment plugin does: orientation groups by plate normal (with a suggested in-plane reference direction) and every case with the sense it must be requested by. Read-only; use it before slab_assess.

Input parameters:

- `group` (string): Structure group to assess (default: every plate).

### `slab_assess` (~513 tokens)

Assess RC slabs/shells from plate forces

Reads plate forces (PLATEFORCEUL, element local axes) for one orientation group and the given load cases, rotates them to the reinforcement direction and assesses every position with the plugin's own core (Denton, Wood-Armer, sandwich, Annex LL, CS 455). Returns counts, the worst elements with governing case/position, coverage and every gap (missing results are INCOMPLETE, never a pass). Read-only. Can take minutes on big models (a job on the website).

Input parameters:

- `alphaDeg` (number): Angle of the second bar direction from the first, degrees (default 90 = orthogonal).
- `averaging` (boolean): Average nodal results over the plates meeting at each node (in the reinforcement frame). Off by default: averaging hides peaks.
- `bars` (object): The bar arrangement (preferred): drives the Denton/Wood-Armer capacities, the Annex LL steel forces and covers, and CS 455.
- `capacities` (object): Moment capacities typed directly, instead of bars.
- `cases` (array, required): Load cases / combinations by name (slab_survey lists them).
- `centreOnly` (boolean): Assess element centres only.
- `cs455` (object): CS 455 material inputs (with bars).
- `group` (string): Structure group to assess (default: every plate).
- `maxElements` (integer): How many of the worst elements to list (default 25).
- `methods` (array): Routes: denton (needs capacities), woodarmer, sandwich (Clark–Nielsen), annexll (EN 1992-2 Annex LL), cs455 (needs bars). Default denton + woodarmer.
- `orientation` (integer): Orientation group index from slab_survey (default 0, the largest).
- `reference` (array): Reinforcement x direction as a global vector in the plane of the plates.
- `sandwich` (object): Sandwich / Annex LL: fck, gamma_c, cot_theta, shear {ndp, anchored, d, rho_x, rho_y, rho_l, fywd, asw_per_s}, layer_thicknesses [ts, ti] m; WITHOUT bars also thickness, cover_top, cover_bottom (m, to…
- `thetaDeg` (number): Or: the direction as an angle in the plane from slab_survey's suggestedReference (default 0).

### `slab_explain_location` (~536 tokens)

Explain one slab location's utilisation

The working behind one element's utilisation: reads that element's plate forces, picks its governing position and case (or the one given) and re-runs it through the plugin's explain_location — every route, face, utilisation and intermediate quantity (gamma, Wood-Armer branch, sandwich layer forces, Annex LL split). Same inputs as slab_assess plus element. Read-only.

Input parameters:

- `alphaDeg` (number): Angle of the second bar direction from the first, degrees (default 90 = orthogonal).
- `averaging` (boolean): Average nodal results over the plates meeting at each node (in the reinforcement frame). Off by default: averaging hides peaks.
- `bars` (object): The bar arrangement (preferred): drives the Denton/Wood-Armer capacities, the Annex LL steel forces and covers, and CS 455.
- `capacities` (object): Moment capacities typed directly, instead of bars.
- `case` (string): Only this case (default: the element's governing one among cases).
- `cases` (array, required): Load cases / combinations by name (slab_survey lists them).
- `centreOnly` (boolean): Assess element centres only.
- `cs455` (object): CS 455 material inputs (with bars).
- `element` (integer, required)
- `group` (string): Structure group to assess (default: every plate).
- `maxElements` (integer): Accepted (slab_assess arguments can be reused) and ignored.
- `methods` (array): Routes: denton (needs capacities), woodarmer, sandwich (Clark–Nielsen), annexll (EN 1992-2 Annex LL), cs455 (needs bars). Default denton + woodarmer.
- `orientation` (integer): Orientation group index from slab_survey (default 0, the largest).
- `position` (string|integer): Node number or 'Cent' (default: governing).
- `reference` (array): Reinforcement x direction as a global vector in the plane of the plates.
- `sandwich` (object): Sandwich / Annex LL: fck, gamma_c, cot_theta, shear {ndp, anchored, d, rho_x, rho_y, rho_l, fywd, asw_per_s}, layer_thicknesses [ts, ti] m; WITHOUT bars also thickness, cover_top, cover_bottom (m, to…
- `thetaDeg` (number): Or: the direction as an angle in the plane from slab_survey's suggestedReference (default 0).

### `result_table_catalog` (~216 tokens)

Result and model tables the exporter knows

Lists the CIVIL NX tables the Bulk Tabular Result Exporter plugin can export, with each one's id, MIDAS TABLE_TYPE or /db endpoint, components and the arguments it takes: analysis results (reactions, displacements, beam/truss/plate/solid forces and stresses, links, cables, tendons, modes, composite sections, construction stage tables, 'all columns' for any TABLE_TYPE), calculated pre-process tables, and every model data table (/db/NODE, ELEM, SECT, loads, stages, combinations…). Filter with scope, search or id. Needs no model. Use it to pick the table id for preview_result_table and export_result_tables.

Input parameters:

- `id` (string): One table id, with its full description.
- `scope` (string): pre = model data and pre-process tables; post = analysis results.
- `search` (string): Words in the id, name, category, TABLE_TYPE or DB key, e.g. 'beam', 'reaction', 'tendon'.

### `preview_result_table` (~680 tokens)

Preview one result or model table

Reads one table from the open CIVIL NX model the way the exporter's 'Preview this table' does and returns its first rows (default 20, max 200) with unit-labelled headers, any sub-tables (e.g. reaction totals) and the exact POST /post/TABLE Argument sent. Result tables are a quick sample (first 20 nodes/elements, 3 load cases, 2 stage steps) with an estimate of the full row count; model tables are read whole. When no loadCases are given it also lists the model's load-case names (loadCasesInModel). Read-only (GET /db and POST /post/TABLE only). Results need an analysed model.

Input parameters:

- `argument` (object): For custom-table: the full POST /post/TABLE Argument object.
- `averageNodal` (boolean)
- `columns` (array): Model tables: exact column names to keep (preview first to see them).
- `components` (array): Columns, as listed for the table (e.g. Axial, Moment-y). Omit for the plugin's defaults; for 'all columns' tables omit for every column.
- `constructionStage` (boolean): Results of the construction stage analysis (adds Stage and Step columns).
- `dbKey` (string): For db-custom: any /db/ key (e.g. MVHL, TDNA).
- `decimals` (integer): Default 6.
- `displacementOption` (string): Displacement tables in construction stages.
- `entities` (object)
- `extraArgument` (object): For 'all columns' tables: more POST /post/TABLE Argument keys (e.g. LOAD_CASE_NAMES, NODE_ELEMS, OPT_CS).
- `loadCases` (array): e.g. ["DL(ST)", "ULS(CB)", "ENV(CB:max)", "LM1(MV:max)"]. Omit for every case.
- `nodeCenter` (boolean): Plate tables: include the element centre.
- `nodeCorners` (boolean): Plate tables: include the corner nodes (default true).
- `numberFormat` (string): Default Scientific.
- `parts` (array): Beam tables: stations along each element (default PartI, PartJ).
- `records` (object): Model tables: which record ids (filtered after the read).
- `rows` (integer)
- `sectionPositions` (array): Beam stress detail: e.g. ["Maximum"] or stress point numbers.
- `sheetName` (string): Excel sheet name (≤ 31 characters).
- `stageSteps` (array): With constructionStage: e.g. ["CS1:001(first)", "CS3:002(last)"]. Omit for every saved step.
- `table` (string, required): Table id from result_table_catalog (e.g. reaction-global, beam-force, displacement-global, plate-force-unit-local, db-node). A MIDAS TABLE_TYPE (BEAMFORCE) or DB key (NODE) is accepted too.
- `tableType` (string): For result-any: the MIDAS TABLE_TYPE.
- `title` (string)
- `units` (object): Units MIDAS converts the results to (default kN, m).
- `userTableName` (string): For user-defined-table-*: the saved Dynamic Report Table name.

### `export_result_tables` (~202 tokens)

Export result and model tables to Excel

Exports one or more CIVIL NX tables (each like the preview_result_table arguments, full scope, no sampling) into one Excel workbook built by the exporter plugin: one sheet per table (and per sub-table; split above 1,048,575 rows), unit-labelled headers, numeric cells, and a 'Contents & Export Log' sheet listing each table's request, rows and any failure. format csv gives one CSV file per sheet instead. Returns download links (never the file inline) and a per-table summary; a table that fails is logged and the rest still export. Read-only. Can run long on big models, so it runs as a job on the website.

Input parameters:

- `format` (string)
- `includeContents` (boolean): Add the 'Contents & Export Log' sheet first.
- `tables` (array, required)
- `workbookName` (string): File name without extension (default MIDAS_CIVIL_NX_Tables).

### `section_preview` (~317 tokens)

Section Designer — check and draw a section

Checks a cross-section's outlines with Section Designer's own rules (closed, not self-crossing, holes inside their outline, no overlaps, materials) and returns a PNG drawing of it — the outlines, numbered input vertices, the centroid and chain dimensions — plus the extents, areas and every vertex. Use it FIRST, and LOOK at the drawing: compare it with the user's sketch (overall width and depth, slab and web thicknesses, haunches, cells) and correct misreads before computing or writing anything. Needs no model. From a sketch: read every dimension and put the outline down as vertices in y (across, right +) and z (up), in the sketch's units (default mm). Holes are separate rings inside their outline; direction of travel does not matter. Rounded corners: fillet on that vertex; arcs between vertices: bulge; round bars or ducts: { circle }. Standard shapes can use a template (i_girder, box_girder) instead of vertices. Two materials (girder + slab): one part each, in construction order, each with its material.

Input parameters:

- `section` (object, required): The section, read off the sketch. Axes: y across (positive right), z up, as seen in CIVIL's section dialog; put the origin anywhere convenient (e.g. bottom-left corner or soffit centre) — CIVIL's fra…
- `svg` (boolean): Also store the drawing as an SVG file and return its link.

### `section_properties` (~237 tokens)

Section Designer — section properties

Computes the full CIVIL NX property set of a section with Section Designer's solver: exact area, centroid, second moments, extreme fibres and perimeters from the outlines, and torsion J and shear areas ASY/ASZ from a finite-element mesh refined until all three settle to 0.5 % (converged: true). Composites (two or more parts) give each part alone (STIFF) and each construction stage transformed to the reference material (STIFF_SUM). Results use CIVIL's names (AREA, ASY, ASZ, RXX = J, RYY = Iyy, RZZ = Izz, …) in the section's units. Needs no model. Same section input as section_preview.

Input parameters:

- `drawing` (boolean): Also return the drawing (with the computed centroid).
- `section` (object, required): The section, read off the sketch. Axes: y across (positive right), z up, as seen in CIVIL's section dialog; put the origin anywhere convenient (e.g. bottom-left corner or soffit centre) — CIVIL's fra…

### `section_write` (~332 tokens)

Section Designer — write a section to CIVIL NX

Writes a section into the open CIVIL NX model exactly as Section Designer's Write button does: VALUE/GEN, PSC/VALU or COMPOSITE-GEN with its computed properties (CIVIL keeps them as sent), in the model's units read at the time of writing, then reads it back and compares every value sent. id defaults to the model's next free section id. Refuses unconverged results. If the id is taken it writes nothing and says by what (and how many elements use it); replacing needs replaceExisting: true — DESTRUCTIVE, only with the user's agreement. Previews unless apply: true with confirmPlanHash. Before applying, show the user the drawing (section_preview) and the properties and get their go-ahead. section_write_undo reverses it. Same section input as section_preview.

Input parameters:

- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `id` (integer): Section id; default = next free id in the model.
- `replaceExisting` (boolean): DESTRUCTIVE: overwrite the section already at id (elements using it change stiffness). Only with the user's agreement.
- `section` (object, required): The section, read off the sketch. Axes: y across (positive right), z up, as seen in CIVIL's section dialog; put the origin anywhere convenient (e.g. bottom-left corner or soffit centre) — CIVIL's fra…

### `section_write_undo` (~93 tokens)

Undo a section_write run

Reverses a section_write run from the ledger: deletes the section it created (refused while elements use it), or writes back the section it replaced, then reads back. Default: the latest section_write run not yet undone. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string): Ledger run id; default = the latest section_write run not yet undone.

### `section_read` (~100 tokens)

Section Designer — read sections from the model

Without id: lists the model's sections (id, name, type, whether Section Designer can edit it) and the next free id. With id: returns a drawn section (VALUE/GEN, PSC/VALU, COMPOSITE-GEN) as outlines in section_preview's input format, in units (default mm), with its stored properties — edit it and write it back with section_write.

Input parameters:

- `id` (integer)
- `units`

### `stage_groups` (~402 tokens)

Construction Stage Wizard — structure groups

Creates structure groups with the Construction Stage Wizard plugin's group builder: pick a scope of elements, split it by rules (slice along X/Y/Z into n segments or at cuts, by section, material, element type, thickness, id ranges, existing groups), name them from a template, and resolve clashes with existing groups by policy. Typical use: segments of a deck for staged construction, e.g. rules [{kind:'slice', axis:'X', mode:'count', count:8, cuts:[]}] with naming {template:'Seg_{SLICE}'}. Previews unless apply: true; the write keeps a snapshot for stages_undo.

Input parameters:

- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `includeNodes` (boolean)
- `naming` (object): template with tokens {INDEX}, {SLICE}, {SECTION}, {MATERIAL}, {TYPE}…; prefix, suffix, pad, start.
- `policy`: What to do when a group name already exists.
- `rules` (array): Applied together (every combination becomes a group): {kind:'slice', axis:'X'|'Y'|'Z', mode:'count'|'cuts', count, cuts:[coords]}, {kind:'section'}, {kind:'material'}, {kind:'type'}, {kind:'thickness…
- `scope` (object): {kind:'all'} | {kind:'groups', groups:[names]} | {kind:'ids', text:'1-80'} | {kind:'selection', elements:[ids]}
- `typeFilter` (array): Element types to keep (BEAM, TRUSS, PLATE, SOLID…); empty = all.

### `construction_stages` (~458 tokens)

Construction Stage Wizard — stage sequence

Builds a construction stage sequence with the Construction Stage Wizard plugin's bulk generator and writes it with its stage planner (which keeps composite sections and construction-stage load combinations intact, rewriting and restoring them when CIVIL NX would otherwise delete them). Structure groups are activated in order, groupsPerStage at a time; boundary and load groups (e.g. supports, self weight) ride in the first new stage; an optional temporary group per stage (e.g. a form traveller) is switched on and off with it; an optional final stage closes the sequence. mode 'append' adds after the model's existing stages; 'replace' replaces them all. Every stage is validated against the model's groups first. Previews unless apply: true; the write keeps a snapshot for stages_undo.

Input parameters:

- `age` (number|null): Material age at activation, days; null follows the stage duration.
- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `boundaryGroups` (array): Boundary groups activated in the first new stage (deformed position).
- `confirmPlanHash` (string): planHash from the approved preview; the write is refused if the plan differs.
- `durations` (array): Days per stage; several values repeat as a pattern (e.g. [7, 7, 14]). Default [7].
- `finalStage` (object): {name, duration, steps}: a closing stage, e.g. long-term with time steps.
- `groupPrefix` (string): Instead of groups: every structure group whose name starts with this, in natural order (Seg_2 before Seg_10).
- `groups` (array): Structure groups in construction order.
- `groupsPerStage` (integer)
- `loadGroups` (array): Load groups activated in the first new stage (e.g. self weight).
- `mode`
- `naming` (object): {template:'CS{INDEX}', start, pad}. In append mode start defaults to after the last existing stage.
- `saveResult` (boolean)
- `temporary` (object): {family:'load'|'boundary', groups:[one per stage]}: on in its stage, off in the next.

### `stages_undo` (~69 tokens)

Undo a stage_groups or construction_stages run

Restores the rows a stage_groups or construction_stages run changed, from the snapshot taken just before it wrote (the plugin's own restore). Default: the latest run not yet undone. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `stress_element_loads` (~209 tokens)

Results available for beam elements (Stress Profile Generator)

Reads what the Stress Profile Generator can show for chosen beam elements: each element's section (type, outline verified, composite parts, tapered), material, length, the load cases / combinations / envelopes CIVIL NX publishes results for (with kind and whether each is one concurrent state), the construction stages with results for that element (and, with stage, that stage's results such as Summation). Also lists the model's combinations with the SLS category the plugin would guess. Read-only; reads results with a few batched /post/TABLE requests. Use it before stress_profile or sls_stress_check.

Input parameters:

- `elementIds` (array): Beam element numbers.
- `elements` (string): Element list as the plugin takes it, e.g. "1-20, 35, 40 to 44".
- `group` (string): A structure group; its beam elements are used.
- `stage` (string): A construction stage: also list its results for each element.

### `stress_profile` (~563 tokens)

Stress distribution through a beam section (Stress Profile Generator)

The Stress Profile Generator's profile for ONE beam element: from CIVIL NX's beam forces and the true section outline it calculates σx (or σx from N / My / Mz, τ from Vz / Vy, von Mises, principal, Tresca) over the section at the chosen positions and loads, and checks every profile against CIVIL NX's own published stresses (effective PSC sections are drawn through CIVIL NX's stress points; composite sections part by part from CIVIL NX's per-part results; envelopes give CIVIL NX's values at the stress points plus the governing member or static part as a profile). Returns per profile: status (ok/unchecked/points/refused) with reasons, forces, extremes and where they occur, CIVIL NX vs calculated at stress points 1–4, per-part σx for composites, and min/max across the section at each depth. With `thermal` it gives the EN 1991-1-5 temperature stresses instead, split into total, restraint, self-equilibrating, uniform and linear parts (Type 3 heating/cooling with 100 mm surfacing, a user ΔT profile, or CIVIL NX's own section temperature; restraint free, full, axial, rotation, or CIVIL NX's forces of a load). Optional csv gives the plugin's CSV export as a download link. Read-only.

Input parameters:

- `csv` (boolean): Also return the plugin's CSV export of every profile (a download link).
- `depthLevels` (integer): Levels of the through-depth table (vertex levels are added); 0 leaves it out.
- `elementId` (integer, required): The beam element.
- `loads` (array): Load case / combination / envelope names as stress_element_loads lists them; with stage, that stage's results (e.g. Summation, Dead Load).
- `positions` (array): Positions along the element: I-end, ¼, ½, ¾ span, J-end. Default ["2/4"].
- `result`: sx σx combined; sxN/sxMy/sxMz its parts; tVz/tVy shear; vm von Mises; s1/s2 principal; tmax; tresca.
- `sectionProperties`: effective = CIVIL NX's own stresses (as the plugin's default); gross = the plugin's calculation on the section as modelled, difference stated.
- `stage` (string): Construction stage: use its results (last step) instead of the final state.
- `thermal` (object): Temperature stresses instead of load results (EN 1991-1-5 §6.1.4).
- `unit`: Stress unit of the results (internally kN/m²).

### `sls_stress_check` (~473 tokens)

SLS stress limitation check (Stress Profile Generator)

The Stress Profile Generator's SLS report check (EN 1992-2 §7.2 concrete, EN 1993-2 §7.3 structural steel; normal stress σx at the fibres) over many elements × positions × combinations — or, with source stages, its construction-stage checks (fck(t) from CIVIL NX's concrete age, steel fy/γM0, tendons from CIVIL NX's tendon stresses). Every state is generated and matched with CIVIL NX as in stress_profile; composite parts are checked against their own concrete's fck. LIMITS ARE OPT-IN exactly as in the plugin: with no limit chosen the verdict is NO LIMIT APPLIED; nothing that could not be evaluated passes (INCOMPLETE). Combination categories (characteristic / frequent / quasi-permanent / none) are taken as given, else guessed from the name and reported. Returns the one verdict, the limits used, counts, the governing state, failures, what was not evaluated and why, per combination/stage and per element, and the plugin's SLS CSV as a download link. Read-only.

Input parameters:

- `combinations` (array): source combinations: the combinations to check, each a name or {name, category}.
- `csv` (boolean): Return the plugin's SLS CSV (every state, one row per part) as a download link.
- `elementIds` (array): Beam element numbers.
- `elements` (string): Element list as the plugin takes it, e.g. "1-20, 35, 40 to 44".
- `group` (string): A structure group; its beam elements are used.
- `limits` (object): Combination checks. Nothing optional is on unless set here. Stresses in MPa.
- `positions` (array): Positions along the element: I-end, ¼, ½, ¾ span, J-end. Default all five.
- `source`
- `stageLimits` (object): source stages. The plugin's defaults: compression on (kc 0.6), tension none, steel full, tendons checked.
- `stages`: source stages: stage names, or "all" (default).
- `unit`: Stress unit of the results (internally kN/m²).

### `civil_write_tables` (~427 tokens)

Write any model table (build from scratch)

Creates, changes or deletes rows in any CIVIL NX database table through the MIDAS API — nodes, elements, materials, sections, thicknesses, supports, links, load cases, loads, groups, stages, combinations, anything the API manual lists — so a model can be built from scratch or changed where no plugin tool does it. Look up the table and its fields first with midas_docs_search / midas_docs_read (e.g. "db/ELEM"), and read the current rows with civil_read_table. writes is a list of steps run in order: { table, op: create (POST — new keys only, refused if a key exists) | upsert (PUT — creates or changes; GRUP lists and CNLD/BMLD/PRES/RIGD items MERGE, they are never removed by a PUT) | delete (DESTRUCTIVE — needs allowDestructive; a node takes its elements, an element its loads, a load case its loads), rows: { "<key>": {fields} } | ids: [keys] }. The preview simulates every step over the current model: what each creates, changes (which fields) and deletes; it blocks keys that already exist on create, elements that refer to nodes, materials, sections or thicknesses that do not exist (CIVIL NX accepts a missing section silently), deletes and UNIT / MVCD writes without allowDestructive. Then apply: true with confirmPlanHash writes the steps (stopping at the first refusal), reads every touched row back and reports anything not stored as sent. civil_write_tables_undo puts every touched row back.

Input parameters:

- `allowDestructive` (boolean): DESTRUCTIVE: allow delete steps and writes to UNIT / MVCD. Only after the user agreed to what the preview says they do.
- `apply` (boolean): Write to CIVIL NX. Only after the user approved the preview.
- `confirmPlanHash` (string): planHash from the approved preview; refused if the model or the steps changed.
- `writes` (array, required)

### `civil_write_tables_undo` (~135 tokens)

Undo a civil_write_tables run

Puts every row a civil_write_tables run touched back as it was before the run: deletes rows it created, restores rows it changed or deleted (a merging table's row is replaced whole). Works on a run that stopped part-way too. Warns where a row changed after the run. What CIVIL NX deleted along with a row (elements on a deleted node, loads on a deleted element) is not part of the run and does not come back. Default: the latest run not yet undone. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `runId` (string)

### `civil_run_analysis` (~140 tokens)

Run the analysis

Runs the CIVIL NX analysis of the open model (doc/ANAL), so results can be read with the result tools straight after building or changing a model. Replaces the model's results; changes no model data. The model must have been saved to a file at least once (the API cannot analyse an unsaved model): saveFirst: true saves it over its file first. Previews unless apply: true. Can take minutes on a large model.

Input parameters:

- `apply` (boolean): Run it. Only with the user's go-ahead.
- `saveFirst` (boolean): Save the model over its own file before analysing (doc/SAVE).

### `civil_save_model` (~118 tokens)

Save the model

Saves the open CIVIL NX model: over its own file (doc/SAVE), or as a new .mcb file when path is given (doc/SAVEAS; a file of that name is overwritten). A model built from scratch must be saved once before it can be analysed. Previews unless apply: true.

Input parameters:

- `apply` (boolean)
- `path` (string): Full Windows path ending in .mcb, e.g. C:\Models\Bridge.mcb. Omit to save over the model's own file.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-midasiteurope-civil-nx/midasiteurope#diagnostics

## Score history

- 2026-11-05: 65
- 2026-11-04: 65
- 2026-11-03: 64
- 2026-11-02: 64
- 2026-11-01: 63
- 2026-10-31: 63
- 2026-10-30: 62
- 2026-10-29: 62
- 2026-10-28: 61
- 2026-10-27: 61
- 2026-10-26: 60

## Common questions

### What is the MIDAS CIVIL NX tools (MIDAS IT Europe) MCP server?

MIDAS CIVIL NX tools (MIDAS IT Europe) is an MCP server listed in the public MCP registry as com.midasiteurope/civil-nx. Build, check and report on MIDAS CIVIL NX bridge models through the MIDAS IT Europe plugins. This page covers its hosted endpoint (https://midasiteurope.com/mcp).

### Is the MIDAS CIVIL NX tools (MIDAS IT Europe) MCP server safe to use?

MIDAS CIVIL NX tools (MIDAS IT Europe) scores 65 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the MIDAS CIVIL NX tools (MIDAS IT Europe) MCP server expose?

MIDAS CIVIL NX tools (MIDAS IT Europe) exposes 101 tools: auto_structure_groups, auto_structure_groups_undo, b2p_survey, b2p_convert, b2p_undo, and 96 more. Their descriptions and schemas cost roughly 37,527 tokens of context every time the server is loaded.

### Does the MIDAS CIVIL NX tools (MIDAS IT Europe) MCP server require authentication?

No. We connected to MIDAS CIVIL NX tools (MIDAS IT Europe) without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the MIDAS CIVIL NX tools (MIDAS IT Europe) MCP server still maintained?

MIDAS CIVIL NX tools (MIDAS IT Europe) is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://midasiteurope.com/mcp
- Website: https://midasiteurope.com/llm
- Changelog RSS feed: https://verifymcp.io/servers/com-midasiteurope-civil-nx/midasiteurope.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-midasiteurope-civil-nx/midasiteurope.json
- HTML version of this page: https://verifymcp.io/servers/com-midasiteurope-civil-nx/midasiteurope
