Build, check and report on MIDAS CIVIL NX bridge models through the MIDAS IT Europe plugins.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Personal token (cnx_...) from midasiteurope.com/llm. Needed to read or change a CIVIL NX model; calculation tools work without it.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
What one group holds: one section, one section + material pair, or one material.
Write to CIVIL NX. Only after the user approved the preview.
Write only these proposed groups (names from the preview); default all.
Put in front of every group name.
A proposed name that already exists: leave that group alone, or add this run's members to it.
Skip groups with fewer elements than this (2 or more turns the filter on).
Also put each group's element nodes in the group.
planHash from the approved preview; the write is refused if the plan differs.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| mode | any | What one group holds: one section, one section + material pair, or one material. |
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| groups | array | Write only these proposed groups (names from the preview); default all. |
| prefix | string | Put in front of every group name. |
| existing | any | A proposed name that already exists: leave that group alone, or add this run's members to it. |
| minElements | integer | Skip groups with fewer elements than this (2 or more turns the filter on). |
| includeNodes | boolean | Also put each group's element nodes in the group. |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
{
"type": "object",
"properties": {
"mode": {
"enum": [
"section",
"section_material",
"material"
],
"default": "section",
"description": "What one group holds: one section, one section + material pair, or one material."
},
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"groups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Write only these proposed groups (names from the preview); default all."
},
"prefix": {
"type": "string",
"default": "SG_",
"description": "Put in front of every group name."
},
"existing": {
"enum": [
"skip",
"overwrite"
],
"default": "skip",
"description": "A proposed name that already exists: leave that group alone, or add this run's members to it."
},
"minElements": {
"type": "integer",
"minimum": 0,
"description": "Skip groups with fewer elements than this (2 or more turns the filter on)."
},
"includeNodes": {
"type": "boolean",
"default": false,
"description": "Also put each group's element nodes in the group."
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string | Ledger run id; default = the latest auto_structure_groups run not yet undone. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string",
"description": "Ledger run id; default = the latest auto_structure_groups run not yet undone."
}
},
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| model | any | convert = plates/solids along the member; slice = a transverse slice of each section meshed in its own plane (beams kept, nothing linked or loaded). |
| facets | integer | Facets per circle for round sections. |
| groups | array | Every beam in these structure groups. |
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).
| Argument | Type | Description |
|---|---|---|
| model | any | convert = plates/solids along the member; slice = a transverse slice of each section meshed in its own plane (beams kept, nothing linked or loaded). |
| facets | integer | Facets per circle for round sections. |
| groups | array | Every beam in these structure groups. |
| meshAs | object | Per-section override of the suggestion, {sectionId: 'plate'|'solid'}. |
| longSize | number | Mesh size along the member (default 0.5 m), in the model's length unit (b2p_survey reports it). |
| sections | array | Every beam of these section ids. |
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.
| Argument | Type | Description |
|---|---|---|
| tidy | boolean | Also remove the thickness records and mesh group this run created, when unused. |
| apply | boolean | |
| runId | string | Ledger run id; default = the latest b2p_convert run not yet undone. |
{
"type": "object",
"properties": {
"tidy": {
"type": "boolean",
"default": true,
"description": "Also remove the thickness records and mesh group this run created, when unused."
},
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string",
"description": "Ledger run id; default = the latest b2p_convert run not yet undone."
}
},
"additionalProperties": false
}Changes the geometry of the bridge in the open model in place, with the Bridge Reshaper plugin's own engine (1.0.5): 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).
| Argument | Type | Description |
|---|---|---|
| axis | any | Spans run along global X or Y. Default: X, or Y when no deck is found along X (the read says which it used). |
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview (and saved a copy of the model). |
| skews | array | New skew of every support in degrees from square, Abutment A first; null keeps one. Default: as modelled. |
Reads the open model the way the Bridge Reshaper plugin (1.0.5) 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.
| Argument | Type | Description |
|---|---|---|
| axis | any | Spans run along global X or Y. Default: X, or Y when no deck is found along X (the read says which it used). |
| 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 from where its girders start (model unit), skew in degrees from square. At least the two ends. bridge_reshape_read reports the girders' extent and the supports it found. |
| deckGroups | array | Structure groups that ARE the deck, when the automatic choice is wrong. Default: found from the model. |
{
"type": "object",
"properties": {
"axis": {
"enum": [
"x",
"y"
],
"description": "Spans run along global X or Y. Default: X, or Y when no deck is found along X (the read says which it used)."
},
"picture": {
"type": "boolean",
"default": true,
"description": "Return a plan drawing (PNG) to look at."
},
"supports": {
"type": "array",
"items": {
"type": "object",
"required": [
"ch"
],
"properties": {
"ch": {
"type": "number"
},
"skew": {
"type": "number",
"default": 0
}
},
"additionalProperties": false
},
"minItems": 2,
"description": "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 from where its girders start (model unit), skew in degrees from square. At least the two ends. bridge_reshape_read reports the girders' extent and the supports it found."
},
"deckGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Structure groups that ARE the deck, when the automatic choice is wrong. Default: found from the model."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| 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. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"force": {
"type": "boolean",
"default": false,
"description": "DESTRUCTIVE: undo even though the model was edited since the apply (those edits are overwritten)."
},
"runId": {
"type": "string",
"description": "Ledger run id; default = the latest bridge_reshape run not yet undone."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| ids | array | Row ids to return. Omit for the first `limit` rows. |
| limit | integer | |
| table* | string | Table key, e.g. NODE, ELEM, GRUP, STAG. |
{
"type": "object",
"required": [
"table"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": [
"integer",
"string"
]
},
"description": "Row ids to return. Omit for the first `limit` rows."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1
},
"table": {
"type": "string",
"description": "Table key, e.g. NODE, ELEM, GRUP, STAG."
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| csv | boolean | Also store the full table (header, notes, every row) as a CSV file and return its link. |
| items | string | Items in set syntax, e.g. "101to148, N9001to9006, EL12". |
| units | object | Units to report in (MIDAS converts). Default: the model's own. |
| groups | array | Structure groups to add to the set. |
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.
| Argument | Type | Description |
|---|---|---|
| units | object | Units to report in (MIDAS converts). Default: the model's own. |
{
"type": "object",
"properties": {
"units": {
"type": "object",
"properties": {
"force": {
"enum": [
"N",
"kN",
"kgf",
"tonf",
"lbf",
"kips"
],
"type": "string"
},
"length": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"type": "string"
}
},
"description": "Units to report in (MIDAS converts). Default: the model's own.",
"additionalProperties": false
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | At most this many load case entries. |
| units | object | Units to report in (MIDAS converts). Default: the model's own. |
| search | string | Only load cases / combinations whose name contains this (case-insensitive). |
| includeConstituents | boolean | List each combination's children (name, factor, analysis kind). |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 300,
"maximum": 1000,
"minimum": 1,
"description": "At most this many load case entries."
},
"units": {
"type": "object",
"properties": {
"force": {
"enum": [
"N",
"kN",
"kgf",
"tonf",
"lbf",
"kips"
],
"type": "string"
},
"length": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"type": "string"
}
},
"description": "Units to report in (MIDAS converts). Default: the model's own.",
"additionalProperties": false
},
"search": {
"type": "string",
"description": "Only load cases / combinations whose name contains this (case-insensitive)."
},
"includeConstituents": {
"type": "boolean",
"default": false,
"description": "List each combination's children (name, factor, analysis kind)."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| age | number | null | Material age at activation, days; null follows the stage duration. |
| mode | any | |
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| groups | array | Structure groups in construction order. |
| naming | object | {template:'CS{INDEX}', start, pad}. In append mode start defaults to after the last existing stage. |
| durations | array | Days per stage; several values repeat as a pattern (e.g. [7, 7, 14]). Default [7]. |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| nodes | array | Points: {x, y, z} or {id, x, y, z}; [x, y, z] and [id, x, y, z] arrays also work. |
| 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. |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string | Ledger run id; default = the latest create_nodes run not yet undone. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string",
"description": "Ledger run id; default = the latest create_nodes run not yet undone."
}
},
"additionalProperties": false
}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 placements), and lists the case groups each loading model needs. Needs no model — use it to answer layout questions or to choose inputs before cs454_moving_loads.
| Argument | Type | Description |
|---|---|---|
| lanes | object | Lane options: picked (M1S, M1C, M2, SV, HB, SVM1S, SVM1C, SVM2, FW, ACC), level, packing, svVehicle, prefix… |
| section | object | Cross-section, m: width (carriageway), kerbOffset, markedLanes, hardShoulder, leftVerge, rightVerge, footways (leftFootway, rightFootway), central reserve. |
{
"type": "object",
"properties": {
"lanes": {
"type": "object",
"properties": {
"picked": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Lane options: picked (M1S, M1C, M2, SV, HB, SVM1S, SVM1C, SVM2, FW, ACC), level, packing, svVehicle, prefix…",
"additionalProperties": true
},
"section": {
"type": "object",
"description": "Cross-section, m: width (carriageway), kerbOffset, markedLanes, hardShoulder, leftVerge, rightVerge, footways (leftFootway, rightFootway), central reserve.",
"additionalProperties": true
}
},
"additionalProperties": false
}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), the ALL model 1/2 vehicles up to the chosen level, SV/HB where picked, and the moving load cases with remaining areas — each written and read back. It reads the deck from the model the way the plugin does (reference girder, width, kerb, cross-beam group, skew) unless reference/surface/section.width are given. Without apply it only previews (lanes, vehicles, cases, 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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| lanes | object | Lane options. Main one: picked — the loading models to lay out: M1S (ALL model 1 single), M1C (convoy), M2 (ALL model 2), SV, HB, SVM1S, SVM1C, SVM2, FW (footway), ACC (accidental). Also level, packing, svVehicle… |
| scope | any | ALL = lanes + vehicles + cases; LANES = lanes only; LOADS = vehicles and cases on the model's existing lanes. |
| config | object | Advanced: any other plugin configuration field, deep-merged over the defaults. |
| section | object | Carriageway cross-section, m: width, kerbOffset, markedLanes, hardShoulder, 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). |
Removes the lanes, vehicles, cases and groups a cs454_moving_loads run wrote, using the plugin's own cleanup: anything edited since the run, or still used by something else, is kept. Previews unless apply: true.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string"
}
},
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| fy | number | Reinforcement yield strength, MPa (default 500). |
| fcu | number | Concrete cube strength, MPa (default: from the model's EN grade C../.. — its cube value). |
| cases | array | Load cases / combinations by name (default: every load combination the model has). |
| 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. |
| 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, 1 = outermost), count ('8' bars or '@150' spacing), dia (mm, or '1.128in', or '#9'), depth (mm below top, face 'depth' only), span ('±430:900' width limits), from/to/which (side bars)}], coords {datum: bc|bl|tc, text: 'y z dia' per line, mm}. |
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.
| Argument | Type | Description |
|---|---|---|
| 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, 1 = outermost), count ('8' bars or '@150' spacing), dia (mm, or '1.128in', or '#9'), depth (mm below top, face 'depth' only), span ('±430:900' width limits), from/to/which (side bars)}], coords {datum: bc|bl|tc, text: 'y z dia' per line, mm}. |
| sectionId* | integer | string | The CIVIL NX section id (a beam section). |
| restrained |
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.
| Argument | Type | Description |
|---|---|---|
| fy | number | Reinforcement yield strength, MPa (default 500). |
| end | any | |
| fcu | number | Concrete cube strength, MPa (default: from the model's EN grade C../.. — its cube value). |
| cases | array | Load cases / combinations by name (default: every load combination the model has). |
| 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. |
| 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, 1 = outermost), count ('8' bars or '@150' spacing), dia (mm, or '1.128in', or '#9'), depth (mm below top, face 'depth' only), span ('±430:900' width limits), from/to/which (side bars)}], coords {datum: bc|bl|tc, text: 'y z dia' per line, mm}. |
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.
| Argument | Type | Description |
|---|---|---|
| view | any | |
| series | string | |
| formats | array | Default both. |
| 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 forces, Cb(min/max) for stresses; heads such as Axial, Shear-z, Moment-y, Bend(+z), Cb1(-y+z), or short names My, Mz, Fx, Fz), part 'gov' (default: on composite members the governing section part at each position) or 1–4 (1 = girder, 2 = slab), series (default Summation). Composite members' stresses are read per section part (COMPSECTBEAMSTRESS), as the plugin does. |
| program | string |
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.
| Argument | Type | Description |
|---|---|---|
| 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). |
| 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 forces, Cb(min/max) for stresses; heads such as Axial, Shear-z, Moment-y, Bend(+z), Cb1(-y+z), or short names My, Mz, Fx, Fz), part 'gov' (default: on composite members the governing section part at each position) or 1–4 (1 = girder, 2 = slab), series (default Summation). Composite members' stresses are read per section part (COMPSECTBEAMSTRESS), as the plugin does. |
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.
| Argument | Type | Description |
|---|---|---|
| groups | boolean | Add one row per structure, boundary and load group: members and the stages that switch it. |
| stages | array | Stage names to report (default: every stage). |
| maxStages | integer | |
| elementIds | boolean | Add the element ids activated and deactivated in each stage (as ranges, e.g. '1-40, 52'). |
{
"type": "object",
"properties": {
"groups": {
"type": "boolean",
"default": false,
"description": "Add one row per structure, boundary and load group: members and the stages that switch it."
},
"stages": {
"type": "array",
"items": {
"type": "string"
},
"description": "Stage names to report (default: every stage)."
},
"maxStages": {
"type": "integer",
"default": 150,
"maximum": 500,
"minimum": 1
},
"elementIds": {
"type": "boolean",
"default": false,
"description": "Add the element ids activated and deactivated in each stage (as ranges, e.g. '1-40, 52')."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| analyse | boolean | Run the analysis first (default true). |
| 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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm]. |
| maxLocations | integer | Locations to list, worst first (default 30). |
{
"type": "object",
"properties": {
"analyse": {
"type": "boolean",
"description": "Run the analysis first (default true)."
},
"project": {
"type": "object",
"description": "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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm].",
"additionalProperties": true
},
"maxLocations": {
"type": "integer",
"description": "Locations to list, worst first (default 30)."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| 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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm]. |
| newDocument | boolean | DESTRUCTIVE: open a new CIVIL NX model first (the open one is replaced; unsaved work is lost). |
| confirmPlanHash | string |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| 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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm]. |
{
"type": "object",
"properties": {
"project": {
"type": "object",
"description": "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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm].",
"additionalProperties": true
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| format | any | xlsx (default), pdf, or both from one run of the checks. |
| analyse | boolean | |
| 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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm]. |
{
"type": "object",
"properties": {
"format": {
"enum": [
"xlsx",
"pdf",
"both"
],
"description": "xlsx (default), pdf, or both from one run of the checks."
},
"analyse": {
"type": "boolean"
},
"project": {
"type": "object",
"description": "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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm].",
"additionalProperties": true
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| url | string | An https address the DXF is downloaded from, up to 25 MB (public hosts only on the website). |
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| plane | any | Flat drawings only: XY → plan (global XY), XZ → elevation, YZ → side elevation. |
| 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. |
| dxfText |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string | The runId dxf_import returned. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string",
"description": "The runId dxf_import returned."
}
},
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| url | string | An https address the DXF is downloaded from, up to 25 MB (public hosts only on the website). |
| plane | any | Flat drawings only: XY → plan (global XY), XZ → elevation, YZ → side elevation. |
| 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. |
| 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). |
| 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. Per class (linear = lines/polylines/arcs/splines, face = 3DFACE/polyface/mesh, point): as BEAM|TRUSS|IGNORE (linear), PLATE|IGNORE (face), NODE|IGNORE (point); material, section (linear) or thickness (face) as an id, a name or {id,name} (omitted = the DXF default property, created on import); beta (deg); group ('{layer}' = the layer name); split (split at intersections); plate THICK|THIN; include false drops a layer. Example: {rules:[{layer:'*GIRDER*', class:'linear', as:'BEAM', material:'C40/50', section:'G1', group:'Girders'}, {layer:'DIM*', include:false}], layers:{SLAB:{face:{as:'PLATE', thickness:'Slab 250'}}}} |
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.
| Argument | Type | Description |
|---|---|---|
| co | number | Orography factor c_o (default 1). |
| vb0 | number | Fundamental basic wind velocity v_b,0, m/s (CEN has no map). |
| cdir | number | |
| apply | boolean | |
| group | string | |
| bridge | object | Deck inputs, metres. Omitted geometry is measured from the model (ec_wind_apply) — ec_wind_bridge needs b, d, L and groundToSoffit. |
| cseason | number | |
| directions | object | Global load directions to write, e.g. {"Z-": false}. Default: all six (X±, Y±, Z±). |
| elementIds | array |
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.
| Argument | Type | Description |
|---|---|---|
| co | number | Orography factor c_o (default 1). |
| vb0 | number | Fundamental basic wind velocity v_b,0, m/s (CEN has no map). |
| cdir | number | |
| bridge* | object | Deck inputs, metres. Omitted geometry is measured from the model (ec_wind_apply) — ec_wind_bridge needs b, d, L and groundToSoffit. |
| cseason | number | |
| spanAxis | any | |
| directions | object | Global load directions to write, e.g. {"Z-": false}. Default: all six (X±, Y±, Z±). |
| zEccentric | boolean | |
| cscdOverride | number | null |
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.
| Argument | Type | Description |
|---|---|---|
| group | string | |
| elementIds | array |
{
"type": "object",
"properties": {
"group": {
"type": "string"
},
"elementIds": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| format | string | |
| tables* | array | |
| workbookName | string | File name without extension (default MIDAS_CIVIL_NX_Tables). |
| includeContents | boolean | Add the 'Contents & Export Log' sheet first. |
{
"type": "object",
"required": [
"tables"
],
"properties": {
"format": {
"enum": [
"xlsx",
"csv"
],
"type": "string",
"default": "xlsx"
},
"tables": {
"type": "array",
"items": {
"type": "object",
"required": [
"table"
],
"properties": {
"dbKey": {
"type": "string",
"description": "For db-custom: any /db/ key (e.g. MVHL, TDNA)."
},
"parts": {
"type": "array",
"items": {
"enum": [
"PartI",
"Part1/4",
"Part2/4",
"Part3/4",
"PartJ"
],
"type": "string"
},
"description": "Beam tables: stations along each element (default PartI, PartJ)."
},
"table": {
"type": "string",
"description": "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."
},
"title": {
"type": "string"
},
"units": {
"type": "object",
"properties": {
"force": {
"enum": [
"N",
"kN",
"kgf",
"tonf",
"lbf",
"kip"
],
"type": "string"
},
"distance": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"type": "string"
}
},
"description": "Units MIDAS converts the results to (default kN, m).",
"additionalProperties": false
},
"columns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Model tables: exact column names to keep (preview first to see them)."
},
"records": {
"type": "object",
"properties": {
"mode": {
"enum": [
"all",
"ids",
"range"
],
"type": "string"
},
"value": {
"type": "string"
}
},
"description": "Model tables: which record ids (filtered after the read).",
"additionalProperties": false
},
"argument": {
"type": "object",
"description": "For custom-table: the full POST /post/TABLE Argument object."
},
"decimals": {
"type": "integer",
"maximum": 15,
"minimum": 0,
"description": "Default 6."
},
"entities": {
"type": "object",
"properties": {
"mode": {
"enum": [
"all",
"ids",
"range",
"group"
],
"type": "string",
"default": "all"
},
"value": {
"type": "string",
"description": "ids: \"1-40, 52\"; range: \"1 to 250\"; group: the structure group name."
}
},
"additionalProperties": false
},
"loadCases": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. [\"DL(ST)\", \"ULS(CB)\", \"ENV(CB:max)\", \"LM1(MV:max)\"]. Omit for every case."
},
"sheetName": {
"type": "string",
"description": "Excel sheet name (≤ 31 characters)."
},
"tableType": {
"type": "string",
"description": "For result-any: the MIDAS TABLE_TYPE."
},
"components": {
"type": "array",
"items": {
"type": "string"
},
"description": "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."
},
"nodeCenter": {
"type": "boolean",
"description": "Plate tables: include the element centre."
},
"stageSteps": {
"type": "array",
"items": {
"type": "string"
},
"description": "With constructionStage: e.g. [\"CS1:001(first)\", \"CS3:002(last)\"]. Omit for every saved step."
},
"nodeCorners": {
"type": "boolean",
"description": "Plate tables: include the corner nodes (default true)."
},
"averageNodal": {
"type": "boolean"
},
"numberFormat": {
"enum": [
"Default",
"Fixed",
"Scientific",
"General"
],
"type": "string",
"description": "Default Scientific."
},
"extraArgument": {
"type": "object",
"description": "For 'all columns' tables: more POST /post/TABLE Argument keys (e.g. LOAD_CASE_NAMES, NODE_ELEMS, OPT_CS)."
},
"userTableName": {
"type": "string",
"description": "For user-defined-table-*: the saved Dynamic Report Table name."
},
"sectionPositions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Beam stress detail: e.g. [\"Maximum\"] or stress point numbers."
},
"constructionStage": {
"type": "boolean",
"description": "Results of the construction stage analysis (adds Stage and Step columns)."
},
"displacementOption": {
"enum": [
"Accumulative",
"Current",
"Real"
],
"type": "string",
"description": "Displacement tables in construction stages."
}
},
"additionalProperties": false
},
"maxItems": 40,
"minItems": 1
},
"workbookName": {
"type": "string",
"description": "File name without extension (default MIDAS_CIVIL_NX_Tables)."
},
"includeContents": {
"type": "boolean",
"default": true,
"description": "Add the 'Contents & Export Log' sheet first."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| jobId* | string |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| name | string | File / model name (default: the model's project name). |
| tendons | boolean | Tendons drawn at their duct diameter. |
| joinDeck | boolean | Join side-by-side girders' slab strips into one continuous deck. |
| startStation | number | Chainage at the start of the deck, m. |
| 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. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "File / model name (default: the model's project name)."
},
"tendons": {
"type": "boolean",
"default": true,
"description": "Tendons drawn at their duct diameter."
},
"joinDeck": {
"type": "boolean",
"default": true,
"description": "Join side-by-side girders' slab strips into one continuous deck."
},
"startStation": {
"type": "number",
"default": 0,
"description": "Chainage at the start of the deck, m."
},
"separateSlabs": {
"type": "boolean",
"default": true,
"description": "A composite section's deck slab as its own slab."
},
"skipWeightless": {
"type": "boolean",
"default": true,
"description": "Leave out weightless (dummy) members; cables, piles and members named NoSW are kept."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| maxIds | integer | Ids listed per check. |
| language | string | Language of the check wording / the report: English, French, German, Greek, Polish. |
| toleranceMm | number | Nodes closer than this (mm, 3D) count as coincident. |
| outlierFactor | number | An element longer or shorter than the median length by this factor is an outlier. |
{
"type": "object",
"properties": {
"maxIds": {
"type": "integer",
"default": 50,
"maximum": 1000,
"minimum": 0,
"description": "Ids listed per check."
},
"language": {
"enum": [
"en",
"fr",
"de",
"el",
"pl"
],
"type": "string",
"default": "en",
"description": "Language of the check wording / the report: English, French, German, Greek, Polish."
},
"toleranceMm": {
"type": "number",
"default": 1,
"description": "Nodes closer than this (mm, 3D) count as coincident.",
"exclusiveMinimum": 0
},
"outlierFactor": {
"type": "number",
"default": 10,
"description": "An element longer or shorter than the median length by this factor is an outlier.",
"exclusiveMinimum": 1
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| images | any | Pictures CIVIL NX renders into the report. "none" for none; otherwise an object (omitted fields keep the defaults: modelViews ["iso"], savedFigures "all"). |
| details | object | Document details printed on the cover (all optional). |
| formats | array | |
| language | string | Language of the check wording / the report: English, French, German, Greek, Polish. |
| numbering | boolean | Number chapters and figures. |
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.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| cuts | array | |
| name | string | File / model name (default: the model's project name). |
| units | any | 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). |
| hidden | boolean | Hidden lines dashed in plan and elevation. |
| labels | boolean | Chainages, labels and dimensions. |
| model3d | boolean | Also write the 3D DXF. |
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.
| Argument | Type | Description |
|---|---|---|
| name | string | File / model name (default: the model's project name). |
| loads | boolean | Load cases, self-weight, nodal/beam/pressure loads and combinations (with analysis). |
| georef | object | {crs (e.g. EPSG:27700), eastings, northings, height, rotation (deg), scale}: IfcMapConversion. Omitted = none. |
| groups | boolean | |
| schema | any | IFC4: Revit, Navisworks, Tekla, Solibri. IFC4X3: the bridge model (IfcBridge parts, bearings, alignment). |
| stages | boolean |
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.
| Argument | Type | Description |
|---|---|---|
| psi | number | |
| tMax | number | Max effective bridge temperature, °C (default 37). |
| tMin | number | Min effective bridge temperature, °C (default -2). |
| gammaQ | number | |
| skewDeg | number | |
| abutment | object | |
| gammaSat | number | |
| override | object | null | Engineer's route override {route, engineer, reason} — only with the user's justification. |
| gammaBulk | number |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| psi | number | |
| tMax | number | Max effective bridge temperature, °C (default 37). |
| tMin | number | Min effective bridge temperature, °C (default -2). |
| apply | boolean | |
| gammaQ | number | |
| skewDeg | number | |
| stageId | integer | null | Construction stage id to activate the four cases in. |
| gammaSat | number | |
| override | object | null | Engineer's route override {route, engineer, reason} — only with the user's justification. |
| abutments |
Plans the PD 6694-1 Annex A soil-structure interaction run on the open model with the plugin's planner: spring nodes on each wall, piles, the stiffness range, and every blocker. Read-only.
| Argument | Type | Description |
|---|---|---|
| psi | number | |
| ssi | object | Annex A settings, as the plugin's SSI tab: deckGroup (required), stageId, suspendGroups, piles [{pileGroup, pileTributaryWidth, excavationLevel}], movementConvention, foundationC, groundPhi, groundGamma, mode (multilinear|linear), onLinearBehaviour, tolerance, maxIterations, relaxation, wallRigidAtBase, pilePlaneStrainConfirmed. |
| tMax | number | Max effective bridge temperature, °C (default 37). |
| tMin | number | Min effective bridge temperature, °C (default -2). |
| gammaQ | number | |
| skewDeg | number | |
| gammaSat | number | |
| override | object | null | Engineer's route override {route, engineer, reason} — only with the user's justification. |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| psi | number | |
| ssi | object | Annex A settings, as the plugin's SSI tab: deckGroup (required), stageId, suspendGroups, piles [{pileGroup, pileTributaryWidth, excavationLevel}], movementConvention, foundationC, groundPhi, groundGamma, mode (multilinear|linear), onLinearBehaviour, tolerance, maxIterations, relaxation, wallRigidAtBase, pilePlaneStrainConfirmed. |
| tMax | number | Max effective bridge temperature, °C (default 37). |
| tMin | number | Min effective bridge temperature, °C (default -2). |
| apply | boolean | |
| gammaQ | number | |
| skewDeg | number | |
| gammaSat | number | |
| override |
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.
| Argument | Type | Description |
|---|---|---|
| rows | integer | |
| dbKey | string | For db-custom: any /db/ key (e.g. MVHL, TDNA). |
| parts | array | Beam tables: stations along each element (default PartI, PartJ). |
| table* | string | 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. |
| title | string | |
| units | object | Units MIDAS converts the results to (default kN, m). |
| columns | array |
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.
| Argument | Type | Description |
|---|---|---|
| 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'. |
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "One table id, with its full description."
},
"scope": {
"enum": [
"pre",
"post"
],
"type": "string",
"description": "pre = model data and pre-process tables; post = analysis results."
},
"search": {
"type": "string",
"description": "Words in the id, name, category, TABLE_TYPE or DB key, e.g. 'beam', 'reaction', 'tendon'."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| svg | boolean | Also store the drawing as an SVG file and return its link. |
| section* | object | 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 frame is applied on write. |
{
"type": "object",
"required": [
"section"
],
"properties": {
"svg": {
"type": "boolean",
"default": false,
"description": "Also store the drawing as an SVG file and return its link."
},
"section": {
"type": "object",
"required": [
"parts"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"enum": [
"general",
"psc"
],
"default": "general",
"description": "One part: general = VALUE/GEN; psc = PSC/VALU (for prestressed concrete with PSC design). Two or more parts always write COMPOSITE-GEN."
},
"merge": {
"type": "boolean",
"default": true,
"description": "Merge touching/overlapping regions of the same part."
},
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"regions": {
"type": "array",
"items": {
"type": "object",
"required": [
"outer"
],
"properties": {
"holes": {
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
{
"type": "object",
"required": [
"y",
"z"
],
"properties": {
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"bulge": {
"type": "number",
"description": "The edge from this vertex to the next is an arc: tan(sweep/4), positive = anticlockwise (DXF convention). 1 = semicircle."
},
"fillet": {
"type": "number",
"minimum": 0,
"description": "Round this corner with this radius."
}
},
"additionalProperties": false
}
]
},
"minItems": 3,
"description": "Vertices in order round the outline (either direction); closed automatically."
},
{
"type": "object",
"required": [
"circle"
],
"properties": {
"circle": {
"type": "object",
"required": [
"centre"
],
"properties": {
"centre": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"radius": {
"type": "number"
},
"diameter": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
},
"description": "Voids inside this outer outline (box cells, ducts)."
},
"outer": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
{
"type": "object",
"required": [
"y",
"z"
],
"properties": {
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"bulge": {
"type": "number",
"description": "The edge from this vertex to the next is an arc: tan(sweep/4), positive = anticlockwise (DXF convention). 1 = semicircle."
},
"fillet": {
"type": "number",
"minimum": 0,
"description": "Round this corner with this radius."
}
},
"additionalProperties": false
}
]
},
"minItems": 3,
"description": "Vertices in order round the outline (either direction); closed automatically."
},
{
"type": "object",
"required": [
"circle"
],
"properties": {
"circle": {
"type": "object",
"required": [
"centre"
],
"properties": {
"centre": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"radius": {
"type": "number"
},
"diameter": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
"description": "Closed areas of this material. Regions of one part that touch are merged (Union)."
},
"material": {
"anyOf": [
{
"type": "string",
"description": "A grade: concrete \"C40/50\" (EN 1992 Ecm, ν 0.2) or steel \"S355\" (210 GPa, ν 0.3)."
},
{
"type": "object",
"required": [
"E"
],
"properties": {
"E": {
"type": "number"
},
"nu": {
"type": "number",
"default": 0.2
},
"unit": {
"enum": [
"MPa",
"GPa",
"kN/m2"
],
"default": "MPa"
}
},
"additionalProperties": false
}
]
},
"template": {
"type": "object",
"required": [
"kind"
],
"properties": {
"B": {
"type": "number"
},
"H": {
"type": "number"
},
"Bb": {
"type": "number"
},
"Bs": {
"type": "number"
},
"Bt": {
"type": "number"
},
"Bw": {
"type": "number"
},
"at": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2,
"description": "Where the template's soffit centre goes, [y, z]."
},
"tb": {
"type": "number"
},
"tc": {
"type": "number"
},
"tr": {
"type": "number"
},
"ts": {
"type": "number"
},
"tw": {
"type": "number"
},
"hbh": {
"type": "number"
},
"hbw": {
"type": "number"
},
"hth": {
"type": "number"
},
"htw": {
"type": "number"
},
"tfb": {
"type": "number"
},
"tft": {
"type": "number"
},
"kind": {
"enum": [
"i_girder",
"box_girder"
]
},
"cells": {
"enum": [
1,
2,
3
]
}
},
"description": "A Section Designer template instead of regions; lengths in the section's units. Soffit on z = 0 and centreline on y = 0, moved by at. i_girder: H depth, tw web, Bt/tft top flange width/thickness, Bb/tfb bottom flange, htw/hth top haunch width (beyond the web face)/height, hbw/hbh bottom haunch. box_girder: cells 1–3, B deck width, Bw outer width across the webs at the top (under the cantilever roots), Bs soffit width, H depth, ts top slab, tb bottom slab, tw web thickness (horizontal), tc/tr cantilever thickness at tip/root, htw/hth and hbw/hbh cell haunches (top and bottom corners). Haunches default to 0.",
"additionalProperties": false
},
"reference": {
"type": "boolean",
"description": "Composite only: the material every other part is transformed to (one part; default part 1)."
},
"densityRatio": {
"type": "number",
"default": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 6,
"minItems": 1,
"description": "One part per material, in CONSTRUCTION ORDER (part 1 = first in place, e.g. the steel or precast girder; then the deck slab). Each composite stage i = parts 1…i."
},
"units": {
"enum": [
"mm",
"cm",
"m"
],
"default": "mm",
"description": "Units of every coordinate, radius and template dimension."
},
"offset": {
"enum": [
"LT",
"CT",
"RT",
"LC",
"CC",
"RC",
"LB",
"CB",
"RB"
],
"default": "CC",
"description": "CIVIL offset point (CC = centroid)."
},
"offsetFrom": {
"enum": [
"centroid",
"extents"
],
"default": "centroid"
},
"warpingEffect": {
"type": "boolean",
"default": false,
"description": "CIVIL's 'Consider warping effect': also computes and writes the warping constant IW, the shear centre (YS_YC, ZS_ZC = centroid − shear centre), IP and the warping function / torsion shear coefficients at the stress points (W, CXY, CXZ). Single-material sections only; use it for thin-walled open steel sections."
},
"shearDeformation": {
"type": "boolean",
"default": true
}
},
"description": "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 frame is applied on write.",
"additionalProperties": false
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| drawing | boolean | Also return the drawing (with the computed centroid). |
| section* | object | 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 frame is applied on write. |
{
"type": "object",
"required": [
"section"
],
"properties": {
"drawing": {
"type": "boolean",
"default": false,
"description": "Also return the drawing (with the computed centroid)."
},
"section": {
"type": "object",
"required": [
"parts"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"enum": [
"general",
"psc"
],
"default": "general",
"description": "One part: general = VALUE/GEN; psc = PSC/VALU (for prestressed concrete with PSC design). Two or more parts always write COMPOSITE-GEN."
},
"merge": {
"type": "boolean",
"default": true,
"description": "Merge touching/overlapping regions of the same part."
},
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"regions": {
"type": "array",
"items": {
"type": "object",
"required": [
"outer"
],
"properties": {
"holes": {
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
{
"type": "object",
"required": [
"y",
"z"
],
"properties": {
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"bulge": {
"type": "number",
"description": "The edge from this vertex to the next is an arc: tan(sweep/4), positive = anticlockwise (DXF convention). 1 = semicircle."
},
"fillet": {
"type": "number",
"minimum": 0,
"description": "Round this corner with this radius."
}
},
"additionalProperties": false
}
]
},
"minItems": 3,
"description": "Vertices in order round the outline (either direction); closed automatically."
},
{
"type": "object",
"required": [
"circle"
],
"properties": {
"circle": {
"type": "object",
"required": [
"centre"
],
"properties": {
"centre": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"radius": {
"type": "number"
},
"diameter": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
},
"description": "Voids inside this outer outline (box cells, ducts)."
},
"outer": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
{
"type": "object",
"required": [
"y",
"z"
],
"properties": {
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"bulge": {
"type": "number",
"description": "The edge from this vertex to the next is an arc: tan(sweep/4), positive = anticlockwise (DXF convention). 1 = semicircle."
},
"fillet": {
"type": "number",
"minimum": 0,
"description": "Round this corner with this radius."
}
},
"additionalProperties": false
}
]
},
"minItems": 3,
"description": "Vertices in order round the outline (either direction); closed automatically."
},
{
"type": "object",
"required": [
"circle"
],
"properties": {
"circle": {
"type": "object",
"required": [
"centre"
],
"properties": {
"centre": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"radius": {
"type": "number"
},
"diameter": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
"description": "Closed areas of this material. Regions of one part that touch are merged (Union)."
},
"material": {
"anyOf": [
{
"type": "string",
"description": "A grade: concrete \"C40/50\" (EN 1992 Ecm, ν 0.2) or steel \"S355\" (210 GPa, ν 0.3)."
},
{
"type": "object",
"required": [
"E"
],
"properties": {
"E": {
"type": "number"
},
"nu": {
"type": "number",
"default": 0.2
},
"unit": {
"enum": [
"MPa",
"GPa",
"kN/m2"
],
"default": "MPa"
}
},
"additionalProperties": false
}
]
},
"template": {
"type": "object",
"required": [
"kind"
],
"properties": {
"B": {
"type": "number"
},
"H": {
"type": "number"
},
"Bb": {
"type": "number"
},
"Bs": {
"type": "number"
},
"Bt": {
"type": "number"
},
"Bw": {
"type": "number"
},
"at": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2,
"description": "Where the template's soffit centre goes, [y, z]."
},
"tb": {
"type": "number"
},
"tc": {
"type": "number"
},
"tr": {
"type": "number"
},
"ts": {
"type": "number"
},
"tw": {
"type": "number"
},
"hbh": {
"type": "number"
},
"hbw": {
"type": "number"
},
"hth": {
"type": "number"
},
"htw": {
"type": "number"
},
"tfb": {
"type": "number"
},
"tft": {
"type": "number"
},
"kind": {
"enum": [
"i_girder",
"box_girder"
]
},
"cells": {
"enum": [
1,
2,
3
]
}
},
"description": "A Section Designer template instead of regions; lengths in the section's units. Soffit on z = 0 and centreline on y = 0, moved by at. i_girder: H depth, tw web, Bt/tft top flange width/thickness, Bb/tfb bottom flange, htw/hth top haunch width (beyond the web face)/height, hbw/hbh bottom haunch. box_girder: cells 1–3, B deck width, Bw outer width across the webs at the top (under the cantilever roots), Bs soffit width, H depth, ts top slab, tb bottom slab, tw web thickness (horizontal), tc/tr cantilever thickness at tip/root, htw/hth and hbw/hbh cell haunches (top and bottom corners). Haunches default to 0.",
"additionalProperties": false
},
"reference": {
"type": "boolean",
"description": "Composite only: the material every other part is transformed to (one part; default part 1)."
},
"densityRatio": {
"type": "number",
"default": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 6,
"minItems": 1,
"description": "One part per material, in CONSTRUCTION ORDER (part 1 = first in place, e.g. the steel or precast girder; then the deck slab). Each composite stage i = parts 1…i."
},
"units": {
"enum": [
"mm",
"cm",
"m"
],
"default": "mm",
"description": "Units of every coordinate, radius and template dimension."
},
"offset": {
"enum": [
"LT",
"CT",
"RT",
"LC",
"CC",
"RC",
"LB",
"CB",
"RB"
],
"default": "CC",
"description": "CIVIL offset point (CC = centroid)."
},
"offsetFrom": {
"enum": [
"centroid",
"extents"
],
"default": "centroid"
},
"warpingEffect": {
"type": "boolean",
"default": false,
"description": "CIVIL's 'Consider warping effect': also computes and writes the warping constant IW, the shear centre (YS_YC, ZS_ZC = centroid − shear centre), IP and the warping function / torsion shear coefficients at the stress points (W, CXY, CXZ). Single-material sections only; use it for thin-walled open steel sections."
},
"shearDeformation": {
"type": "boolean",
"default": true
}
},
"description": "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 frame is applied on write.",
"additionalProperties": false
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| id | integer | |
| units | any |
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"units": {
"enum": [
"mm",
"cm",
"m"
],
"default": "mm"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| id | integer | Section id; default = next free id in the model. |
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| section* | object | 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 frame is applied on write. |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
| replaceExisting | boolean | DESTRUCTIVE: overwrite the section already at id (elements using it change stiffness). Only with the user's agreement. |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string | Ledger run id; default = the latest section_write run not yet undone. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string",
"description": "Ledger run id; default = the latest section_write run not yet undone."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| geometry | object | Deck inputs, named as in the plugin. Anything omitted takes the plugin form's default. Lengths in metres, angles in degrees. |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
| replaceExisting | boolean | DESTRUCTIVE: delete all nodes, elements, sections, thicknesses, materials and structure groups first. Only with the user's explicit agreement. |
| structureGroups | boolean | |
| allowDefaultProperties | boolean |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string | Ledger run id; default = the latest skew_grillage run not yet undone. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string",
"description": "Ledger run id; default = the latest skew_grillage run not yet undone."
}
},
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| bars | object | The bar arrangement (preferred): drives the Denton/Wood-Armer capacities, the Annex LL steel forces and covers, and CS 455. |
| cases* | array | Load cases / combinations by name (slab_survey lists them). |
| cs455 | object | CS 455 material inputs (with bars). |
| group | string | Structure group to assess (default: every plate). |
| methods | array | Routes: denton (needs capacities), woodarmer, sandwich (Clark–Nielsen), annexll (EN 1992-2 Annex LL), cs455 (needs bars). Default denton + woodarmer. |
| alphaDeg | number | Angle of the second bar direction from the first, degrees (default 90 = orthogonal). |
| sandwich | object |
Bar arrangement → everything the RC Slab & Shell Assessment routes need, with the plugin's own core: per layer area, d, x, z, moment capacity (kNm/m) and force (kN/m); the Denton/Wood-Armer capacity pairs, the four Annex LL steel forces and the covers to the reinforcement centroid. Needs no model.
| Argument | Type | Description |
|---|---|---|
| fck* | number | MPa |
| fyk | number | MPa (default 500) |
| top | object | One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true. |
| bottom | object | One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true. |
| gamma_c | number | |
| gamma_s | number | |
| alpha_cc | number | |
| thickness_mm* | number |
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.
| Argument | Type | Description |
|---|---|---|
| bars | object | The bar arrangement (preferred): drives the Denton/Wood-Armer capacities, the Annex LL steel forces and covers, and CS 455. |
| case | string | Only this case (default: the element's governing one among cases). |
| cases* | array | Load cases / combinations by name (slab_survey lists them). |
| cs455 | object | CS 455 material inputs (with bars). |
| group | string | Structure group to assess (default: every plate). |
| element* | integer | |
| methods | array | Routes: denton (needs capacities), woodarmer, sandwich (Clark–Nielsen), annexll (EN 1992-2 Annex LL), cs455 (needs bars). Default denton + woodarmer. |
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.
| Argument | Type | Description |
|---|---|---|
| group | string | Structure group to assess (default: every plate). |
{
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "Structure group to assess (default: every plate)."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| csv | boolean | Return the plugin's SLS CSV (every state, one row per part) as a download link. |
| unit | any | Stress unit of the results (internally kN/m²). |
| group | string | A structure group; its beam elements are used. |
| limits | object | Combination checks. Nothing optional is on unless set here. Stresses in MPa. |
| source | any | |
| stages |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | Write to CIVIL NX. Only after the user approved the preview. |
| 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'}, {kind:'idRange', ranges:[{label, text}]}, {kind:'existingGroup', groups:[names]}. |
| scope | object | {kind:'all'} | {kind:'groups', groups:[names]} | {kind:'ids', text:'1-80'} | {kind:'selection', elements:[ids]} |
| naming | object | template with tokens {INDEX}, {SLICE}, {SECTION}, {MATERIAL}, {TYPE}…; prefix, suffix, pad, start. |
| policy | any | What to do when a group name already exists. |
| typeFilter | array | Element types to keep (BEAM, TRUSS, PLATE, SOLID…); empty = all. |
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.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | |
| runId | string |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"runId": {
"type": "string"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| group | string | A structure group; its beam elements are used. |
| stage | string | A construction stage: also list its results for each element. |
| elements | string | Element list as the plugin takes it, e.g. "1-20, 35, 40 to 44". |
| elementIds | array | Beam element numbers. |
{
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "A structure group; its beam elements are used."
},
"stage": {
"type": "string",
"description": "A construction stage: also list its results for each element."
},
"elements": {
"type": "string",
"description": "Element list as the plugin takes it, e.g. \"1-20, 35, 40 to 44\"."
},
"elementIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Beam element numbers."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| csv | boolean | Also return the plugin's CSV export of every profile (a download link). |
| unit | any | Stress unit of the results (internally kN/m²). |
| loads | array | Load case / combination / envelope names as stress_element_loads lists them; with stage, that stage's results (e.g. Summation, Dead Load). |
| stage | string | Construction stage: use its results (last step) instead of the final state. |
| loadAt | any | Where a converted load lands: exactly where it acts; on the section centreline; spread over the section; spread over the deck top. |
| meshAs | object | Per-section override of the suggestion, {sectionId: 'plate'|'solid'}. |
| linkAll | boolean | Rigid-link every member end, not only where something else attaches. |
| longSize | number | Mesh size along the member (default 0.5 m), in the model's length unit (b2p_survey reports it). |
| sections | array | Every beam of these section ids. |
| calibrate | any | 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. |
| groupName | string | Structure group for the whole mesh ('' for none). |
| joinDecks | boolean | Join neighbouring girders' deck slabs. |
| loadFloor | number | Ignore nodal loads under this, in the model's force unit (default 0.01 kN); totals are kept. |
| 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. |
| solidMode | any | auto = each section as the plugin suggests (solid for compact concrete, plates for thin walls); plate; solid. |
| transSize | number | Mesh size across the section (default 0.25 m), in the model's length unit (b2p_survey reports it). |
| deckPlates | any | 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) offset to its own concrete through the plate offset, so area, centroid and second moments are kept; webs run on to the deck line. |
| 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]. |
| 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). |
| solidPlates | any | 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. |
| convertLoads | boolean | Move beam loads, nodal loads on the beams' nodes and element temperatures onto the plates. |
| virtualBeams | boolean | One virtual beam per row of plates, so results read as beam forces. |
| boundaryGroup | string | Boundary group for the rigid links (one per stage in a staged model). |
| acceptSections | array | Section ids to convert although their check failed (the window's 'Convert anyway'). Only with the user's agreement. |
| mergeTolerance | number | Node merge tolerance (default 0.0001 m), in the model's length unit (b2p_survey reports it). |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
| 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. |
| useCivilSelection | boolean | The elements selected in CIVIL NX right now. |
| reuseExistingNodes | boolean | Use a model node already at a mesh point instead of a new one. |
| thicknessGroupingPct | number | Plates within this % share one thickness record. |
| transverseStiffeners | object | Add transverse web stiffeners (CIVIL NX holds none): h outstand, b thickness, spacing along the girder, side, one at each end. |
| includeUncountedStiffeners | boolean | Also mesh stiffeners CIVIL NX leaves out of the section (the 'C' box unticked). |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"model": {
"enum": [
"convert",
"slice"
],
"default": "convert",
"description": "convert = plates/solids along the member; slice = a transverse slice of each section meshed in its own plane (beams kept, nothing linked or loaded)."
},
"facets": {
"type": "integer",
"default": 24,
"maximum": 64,
"minimum": 8,
"description": "Facets per circle for round sections."
},
"groups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Every beam in these structure groups."
},
"loadAt": {
"enum": [
"exact",
"centreline",
"spread",
"deck"
],
"default": "exact",
"description": "Where a converted load lands: exactly where it acts; on the section centreline; spread over the section; spread over the deck top."
},
"meshAs": {
"type": "object",
"description": "Per-section override of the suggestion, {sectionId: 'plate'|'solid'}.",
"additionalProperties": {
"enum": [
"plate",
"solid"
]
}
},
"linkAll": {
"type": "boolean",
"default": false,
"description": "Rigid-link every member end, not only where something else attaches."
},
"longSize": {
"type": "number",
"description": "Mesh size along the member (default 0.5 m), in the model's length unit (b2p_survey reports it).",
"exclusiveMinimum": 0
},
"sections": {
"type": "array",
"items": {
"type": [
"integer",
"string"
]
},
"description": "Every beam of these section ids."
},
"calibrate": {
"enum": [
"generic",
"all",
"off"
],
"default": "generic",
"description": "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."
},
"groupName": {
"type": "string",
"default": "B2P mesh",
"maxLength": 16,
"description": "Structure group for the whole mesh ('' for none)."
},
"joinDecks": {
"type": "boolean",
"default": true,
"description": "Join neighbouring girders' deck slabs."
},
"loadFloor": {
"type": "number",
"minimum": 0,
"description": "Ignore nodal loads under this, in the model's force unit (default 0.01 kN); totals are kept."
},
"materials": {
"type": "object",
"description": "Material per composite part, {sectionId: {part: materialId}} (b2p_survey lists each section's materialSlots); default: from the CS data or the beam's own.",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"type": [
"integer",
"string",
"null"
]
}
}
},
"solidMode": {
"enum": [
"auto",
"plate",
"solid"
],
"default": "auto",
"description": "auto = each section as the plugin suggests (solid for compact concrete, plates for thin walls); plate; solid."
},
"transSize": {
"type": "number",
"description": "Mesh size across the section (default 0.25 m), in the model's length unit (b2p_survey reports it).",
"exclusiveMinimum": 0
},
"deckPlates": {
"enum": [
"follow",
"straight"
],
"default": "follow",
"description": "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) offset to its own concrete through the plate offset, so area, centroid and second moments are kept; webs run on to the deck line."
},
"diaphragms": {
"type": "boolean",
"default": true,
"description": "Fill compact diaphragm segments of a box run with plates (plate mode)."
},
"elementIds": {
"type": [
"string",
"array"
],
"items": {
"type": [
"integer",
"string"
]
},
"description": "Beam element ids: \"101-118, 205\" or [101, 102]."
},
"sliceAtPct": {
"type": "number",
"default": 50,
"maximum": 100,
"minimum": 0,
"description": "model 'slice': where along each member, %."
},
"sliceWidth": {
"type": "number",
"description": "model 'slice': the slice width = plate thickness (default 1 m), in the model's length unit (b2p_survey reports it).",
"exclusiveMinimum": 0
},
"solidPlates": {
"enum": [
"grid",
"outline",
"walls"
],
"default": "grid",
"description": "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."
},
"convertLoads": {
"type": "boolean",
"default": true,
"description": "Move beam loads, nodal loads on the beams' nodes and element temperatures onto the plates."
},
"virtualBeams": {
"type": "boolean",
"default": true,
"description": "One virtual beam per row of plates, so results read as beam forces."
},
"boundaryGroup": {
"type": "string",
"default": "B2P links",
"maxLength": 16,
"description": "Boundary group for the rigid links (one per stage in a staged model)."
},
"acceptSections": {
"type": "array",
"items": {
"type": [
"integer",
"string"
]
},
"description": "Section ids to convert although their check failed (the window's 'Convert anyway'). Only with the user's agreement."
},
"mergeTolerance": {
"type": "number",
"description": "Node merge tolerance (default 0.0001 m), in the model's length unit (b2p_survey reports it).",
"exclusiveMinimum": 0
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
},
"deleteOrphanNodes": {
"type": "boolean",
"default": true,
"description": "Remove the beams' own nodes that nothing else uses once they are deleted."
},
"deleteSourceBeams": {
"type": "boolean",
"default": true,
"description": "DESTRUCTIVE: delete the converted beams after the mesh is written and read back (b2p_undo puts them back). Never deleted for a slice."
},
"useCivilSelection": {
"type": "boolean",
"description": "The elements selected in CIVIL NX right now."
},
"reuseExistingNodes": {
"type": "boolean",
"default": true,
"description": "Use a model node already at a mesh point instead of a new one."
},
"thicknessGroupingPct": {
"type": "number",
"default": 0.5,
"maximum": 20,
"minimum": 0,
"description": "Plates within this % share one thickness record."
},
"transverseStiffeners": {
"type": "object",
"properties": {
"b": {
"type": "number"
},
"h": {
"type": "number"
},
"ends": {
"type": "boolean"
},
"side": {
"enum": [
"both",
"in",
"out"
]
},
"spacing": {
"type": "number"
}
},
"description": "Add transverse web stiffeners (CIVIL NX holds none): h outstand, b thickness, spacing along the girder, side, one at each end.",
"additionalProperties": false
},
"includeUncountedStiffeners": {
"type": "boolean",
"default": false,
"description": "Also mesh stiffeners CIVIL NX leaves out of the section (the 'C' box unticked)."
}
},
"additionalProperties": false
}| calibrate | any | 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. |
| solidMode | any | auto = each section as the plugin suggests (solid for compact concrete, plates for thin walls); plate; solid. |
| transSize | number | Mesh size across the section (default 0.25 m), in the model's length unit (b2p_survey reports it). |
| elementIds | string | array | Beam element ids: "101-118, 205" or [101, 102]. |
| solidPlates | any | 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. |
| sectionLimit | integer | How many section cards to return. |
| acceptSections | array | Section ids to convert although their check failed (the window's 'Convert anyway'). Only with the user's agreement. |
| useCivilSelection | boolean | The elements selected in CIVIL NX right now. |
| includeUncountedStiffeners | boolean | Also mesh stiffeners CIVIL NX leaves out of the section (the 'C' box unticked). |
{
"type": "object",
"properties": {
"model": {
"enum": [
"convert",
"slice"
],
"default": "convert",
"description": "convert = plates/solids along the member; slice = a transverse slice of each section meshed in its own plane (beams kept, nothing linked or loaded)."
},
"facets": {
"type": "integer",
"default": 24,
"maximum": 64,
"minimum": 8,
"description": "Facets per circle for round sections."
},
"groups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Every beam in these structure groups."
},
"meshAs": {
"type": "object",
"description": "Per-section override of the suggestion, {sectionId: 'plate'|'solid'}.",
"additionalProperties": {
"enum": [
"plate",
"solid"
]
}
},
"longSize": {
"type": "number",
"description": "Mesh size along the member (default 0.5 m), in the model's length unit (b2p_survey reports it).",
"exclusiveMinimum": 0
},
"sections": {
"type": "array",
"items": {
"type": [
"integer",
"string"
]
},
"description": "Every beam of these section ids."
},
"calibrate": {
"enum": [
"generic",
"all",
"off"
],
"default": "generic",
"description": "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."
},
"solidMode": {
"enum": [
"auto",
"plate",
"solid"
],
"default": "auto",
"description": "auto = each section as the plugin suggests (solid for compact concrete, plates for thin walls); plate; solid."
},
"transSize": {
"type": "number",
"description": "Mesh size across the section (default 0.25 m), in the model's length unit (b2p_survey reports it).",
"exclusiveMinimum": 0
},
"elementIds": {
"type": [
"string",
"array"
],
"items": {
"type": [
"integer",
"string"
]
},
"description": "Beam element ids: \"101-118, 205\" or [101, 102]."
},
"solidPlates": {
"enum": [
"grid",
"outline",
"walls"
],
"default": "grid",
"description": "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."
},
"sectionLimit": {
"type": "integer",
"default": 40,
"maximum": 200,
"minimum": 1,
"description": "How many section cards to return."
},
"acceptSections": {
"type": "array",
"items": {
"type": [
"integer",
"string"
]
},
"description": "Section ids to convert although their check failed (the window's 'Convert anyway'). Only with the user's agreement."
},
"useCivilSelection": {
"type": "boolean",
"description": "The elements selected in CIVIL NX right now."
},
"includeUncountedStiffeners": {
"type": "boolean",
"default": false,
"description": "Also mesh stiffeners CIVIL NX leaves out of the section (the 'C' box unticked)."
}
},
"additionalProperties": false
}| spans | array | New length of every span, Abutment A first (model unit). Default: as modelled. |
| 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. |
| 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 from where its girders start (model unit), skew in degrees from square. At least the two ends. bridge_reshape_read reports the girders' extent and the supports it found. |
| 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 deck). segments: straights, arcs and clothoid transitions from the deck start, along the deck. points: a curve fitted to X,Y points (model coordinates unless keepCoordinates: false): spline through them, or a least-squares arc or polynomial. landxml / dxf: the file's text. The deck line that follows it is the centreline unless followLine names a girder/edge line (index from bridge_reshape_read). |
| deckGroups | array | Structure groups that ARE the deck, when the automatic choice is wrong. Default: found from the model. |
| crossMembers | any |
| substructure | any | follow: piers and abutments shear with their support's skew; rigid: they keep their shape and turn with it. |
| addToEverySpan | number | Instead of spans: add this to every span. |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
{
"type": "object",
"properties": {
"axis": {
"enum": [
"x",
"y"
],
"description": "Spans run along global X or Y. Default: X, or Y when no deck is found along X (the read says which it used)."
},
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview (and saved a copy of the model)."
},
"skews": {
"type": "array",
"items": {
"type": [
"number",
"null"
]
},
"description": "New skew of every support in degrees from square, Abutment A first; null keeps one. Default: as modelled."
},
"spans": {
"type": "array",
"items": {
"type": "number"
},
"description": "New length of every span, Abutment A first (model unit). Default: as modelled."
},
"layout": {
"type": "object",
"properties": {
"kind": {
"enum": [
"asis",
"straight",
"turns"
]
},
"turns": {
"type": "array",
"items": {
"type": "object",
"required": [
"at",
"angle"
],
"properties": {
"k": {
"type": "integer",
"description": "pier: support index"
},
"at": {
"enum": [
"joint",
"pier",
"ch"
]
},
"ch": {
"type": "number"
},
"angle": {
"type": "number"
},
"index": {
"type": "integer",
"description": "joint: 1-based joint"
}
},
"additionalProperties": false
}
},
"square": {
"type": "boolean",
"default": true,
"description": "Cross members follow the supports (square grid when all supports are square)."
}
},
"description": "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).",
"additionalProperties": false
},
"levels": {
"type": "object",
"properties": {
"cross": {
"type": "object",
"properties": {
"pct": {
"type": "number",
"description": "oneway: rising to the left, % (negative falls); crown: falling each way from the centreline, %."
},
"kind": {
"enum": [
"asis",
"flat",
"oneway",
"crown"
]
}
},
"additionalProperties": false
},
"profile": {
"type": "object",
"properties": {
"g0": {
"type": "number",
"description": "grades: grade from Abutment A, in %. Default: the deck's average grade now."
},
"z0": {
"type": "number",
"description": "Level at Abutment A (flat: the level everywhere). Default: as modelled."
},
"kind": {
"enum": [
"asis",
"flat",
"grades"
]
},
"pvis": {
"type": "array",
"items": {
"type": "object",
"required": [
"ch",
"g"
],
"properties": {
"L": {
"type": "number",
"description": "parabolic curve length (0 = sharp)"
},
"g": {
"type": "number",
"description": "grade after it, %"
},
"ch": {
"type": "number"
}
},
"additionalProperties": false
},
"description": "grades: intersection points by NEW chainage from Abutment A."
}
},
"additionalProperties": false
}
},
"description": "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).",
"additionalProperties": false
},
"picture": {
"type": "boolean",
"default": true,
"description": "Return a plan drawing (PNG) to look at."
},
"skewAll": {
"type": "number",
"description": "Instead of skews: the same skew at every support."
},
"supports": {
"type": "array",
"items": {
"type": "object",
"required": [
"ch"
],
"properties": {
"ch": {
"type": "number"
},
"skew": {
"type": "number",
"default": 0
}
},
"additionalProperties": false
},
"minItems": 2,
"description": "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 from where its girders start (model unit), skew in degrees from square. At least the two ends. bridge_reshape_read reports the girders' extent and the supports it found."
},
"alignment": {
"type": "object",
"required": [
"type"
],
"properties": {
"fit": {
"enum": [
"spline",
"arc",
"poly2",
"poly3",
"poly4",
"poly5"
],
"default": "spline"
},
"text": {
"type": "string",
"description": "landxml / dxf: the file's contents."
},
"type": {
"enum": [
"none",
"straight",
"segments",
"points",
"landxml",
"dxf"
]
},
"index": {
"type": "integer",
"minimum": 0,
"description": "landxml / dxf: which alignment in the file (default 0)."
},
"points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"description": "[[x, y], ...] in the model's unit."
},
"chStart": {
"type": "number",
"description": "Chainage along the alignment where the deck starts. Default: just far enough that a skewed deck start lies on it."
},
"segments": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"length"
],
"properties": {
"turn": {
"enum": [
"L",
"R"
]
},
"type": {
"enum": [
"line",
"arc",
"spiral"
]
},
"length": {
"type": "number"
},
"radius": {
"type": "number",
"description": "arc: radius; spiral: radius at its start (omit = from straight)."
},
"radiusEnd": {
"type": "number",
"description": "spiral: radius at its end (omit = to straight)."
}
},
"additionalProperties": false
}
},
"followLine": {
"anyOf": [
{
"const": "centre"
},
{
"type": "integer",
"minimum": 0
}
],
"description": "\"centre\" (default) or a girder/edge line index."
},
"headingDeg": {
"type": "number",
"description": "straight: plan direction in degrees from global X (anticlockwise)."
},
"keepCoordinates": {
"type": "boolean",
"default": true,
"description": "points / landxml / dxf: use the coordinates as given (true) or place the curve's start at the deck start along the deck (false)."
}
},
"description": "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 deck). segments: straights, arcs and clothoid transitions from the deck start, along the deck. points: a curve fitted to X,Y points (model coordinates unless keepCoordinates: false): spline through them, or a least-squares arc or polynomial. landxml / dxf: the file's text. The deck line that follows it is the centreline unless followLine names a girder/edge line (index from bridge_reshape_read).",
"additionalProperties": false
},
"deckGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Structure groups that ARE the deck, when the automatic choice is wrong. Default: found from the model."
},
"crossMembers": {
"enum": [
"parallel",
"square"
],
"default": "parallel"
},
"substructure": {
"enum": [
"follow",
"rigid"
],
"default": "follow",
"description": "follow: piers and abutments shear with their support's skew; rigid: they keep their shape and turn with it."
},
"addToEverySpan": {
"type": "number",
"description": "Instead of spans: add this to every span."
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
}
},
"additionalProperties": false
}| keyItem* |
| string |
| The item whose extreme picks the state, e.g. "101", "N9001", "EL12". Must be in the set. |
| 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. |
| criterion | string |
| 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 item's table. |
| loadCases* | array | Load case / combination names to search (available ones from setup). |
| stageSteps | array | Stage step tokens (from setup) when construction-stage cases are selected. Default: every stage step. |
{
"type": "object",
"required": [
"keyItem",
"loadCases"
],
"properties": {
"csv": {
"type": "boolean",
"default": false,
"description": "Also store the full table (header, notes, every row) as a CSV file and return its link."
},
"items": {
"type": "string",
"description": "Items in set syntax, e.g. \"101to148, N9001to9006, EL12\"."
},
"units": {
"type": "object",
"properties": {
"force": {
"enum": [
"N",
"kN",
"kgf",
"tonf",
"lbf",
"kips"
],
"type": "string"
},
"length": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"type": "string"
}
},
"description": "Units to report in (MIDAS converts). Default: the model's own.",
"additionalProperties": false
},
"groups": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"include": {
"enum": [
"elements",
"nodes",
"both",
"links",
"all"
],
"type": "string",
"default": "elements",
"description": "elements, nodes, both, links (general/elastic links with an end on the group's nodes) or all."
}
},
"additionalProperties": false
},
"description": "Structure groups to add to the set."
},
"keyItem": {
"type": "string",
"description": "The item whose extreme picks the state, e.g. \"101\", \"N9001\", \"EL12\". Must be in the set."
},
"maxRows": {
"type": "integer",
"default": 200,
"maximum": 2000,
"minimum": 1,
"description": "At most this many table rows inline."
},
"position": {
"enum": [
"I",
"J",
"both",
"all"
],
"type": "string",
"default": "all",
"description": "Which output points to SHOW for I/J members; the governing state is always searched over all of them."
},
"criterion": {
"enum": [
"max",
"min",
"absmax"
],
"type": "string",
"default": "max"
},
"keyEffect": {
"type": "string",
"description": "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 item's table."
},
"loadCases": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Load case / combination names to search (available ones from setup)."
},
"stageSteps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Stage step tokens (from setup) when construction-stage cases are selected. Default: every stage step."
}
},
"additionalProperties": false
}| temporary | object | {family:'load'|'boundary', groups:[one per stage]}: on in its stage, off in the next. |
| finalStage | object | {name, duration, steps}: a closing stage, e.g. long-term with time steps. |
| loadGroups | array | Load groups activated in the first new stage (e.g. self weight). |
| saveResult | boolean |
| groupPrefix | string | Instead of groups: every structure group whose name starts with this, in natural order (Seg_2 before Seg_10). |
| boundaryGroups | array | Boundary groups activated in the first new stage (deformed position). |
| groupsPerStage | integer |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
{
"type": "object",
"properties": {
"age": {
"type": [
"number",
"null"
],
"description": "Material age at activation, days; null follows the stage duration."
},
"mode": {
"enum": [
"append",
"replace"
],
"default": "append"
},
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"groups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Structure groups in construction order."
},
"naming": {
"type": "object",
"description": "{template:'CS{INDEX}', start, pad}. In append mode start defaults to after the last existing stage.",
"additionalProperties": true
},
"durations": {
"type": "array",
"items": {
"type": "number"
},
"description": "Days per stage; several values repeat as a pattern (e.g. [7, 7, 14]). Default [7]."
},
"temporary": {
"type": "object",
"description": "{family:'load'|'boundary', groups:[one per stage]}: on in its stage, off in the next.",
"additionalProperties": true
},
"finalStage": {
"type": "object",
"description": "{name, duration, steps}: a closing stage, e.g. long-term with time steps.",
"additionalProperties": true
},
"loadGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Load groups activated in the first new stage (e.g. self weight)."
},
"saveResult": {
"type": "boolean",
"default": true
},
"groupPrefix": {
"type": "string",
"description": "Instead of groups: every structure group whose name starts with this, in natural order (Seg_2 before Seg_10)."
},
"boundaryGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Boundary groups activated in the first new stage (deformed position)."
},
"groupsPerStage": {
"type": "integer",
"default": 1,
"minimum": 1
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
}
},
"additionalProperties": false
}| origin |
| object |
| Added to every coordinate (input unit). |
| decimal | any | Decimal mark in table text; AUTO detects it. |
| increment | integer | numbering 'start': step between ids. |
| inputUnit | any | Unit of the coordinates, the origin offset and the tolerance. |
| numbering | any |
| overwrite | boolean | Move existing nodes whose id is in the input to the new coordinates. Only with the user's agreement. |
| tolerance | number | Coincidence tolerance, input unit. |
| coincident | any | 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. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"nodes": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"x": {
"type": [
"number",
"string"
]
},
"y": {
"type": [
"number",
"string"
]
},
"z": {
"type": [
"number",
"string"
]
},
"id": {
"type": [
"integer",
"string"
]
}
},
"additionalProperties": false
},
{
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
},
"description": "Points: {x, y, z} or {id, x, y, z}; [x, y, z] and [id, x, y, z] arrays also work."
},
"start": {
"type": "integer",
"minimum": 1,
"description": "numbering 'start': first id."
},
"table": {
"type": "string",
"description": "Instead of nodes: tab-, comma- or semicolon-separated text, one node per line (ID, X, Y, Z or X, Y, Z), optional header row."
},
"origin": {
"type": "object",
"properties": {
"x": {
"type": [
"number",
"string"
]
},
"y": {
"type": [
"number",
"string"
]
},
"z": {
"type": [
"number",
"string"
]
}
},
"description": "Added to every coordinate (input unit).",
"additionalProperties": false
},
"decimal": {
"enum": [
"AUTO",
"POINT",
"COMMA"
],
"description": "Decimal mark in table text; AUTO detects it."
},
"increment": {
"type": "integer",
"minimum": 1,
"description": "numbering 'start': step between ids."
},
"inputUnit": {
"enum": [
"M",
"MM"
],
"default": "M",
"description": "Unit of the coordinates, the origin offset and the tolerance."
},
"numbering": {
"enum": [
"auto",
"start",
"column"
]
},
"overwrite": {
"type": "boolean",
"default": false,
"description": "Move existing nodes whose id is in the input to the new coordinates. Only with the user's agreement."
},
"tolerance": {
"type": "number",
"default": 0.001,
"minimum": 0,
"description": "Coincidence tolerance, input unit."
},
"coincident": {
"enum": [
"report",
"skip",
"create"
],
"default": "report",
"description": "report = preview only; skip = leave coincident rows out; create = create them anyway."
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
}
},
"additionalProperties": false
}| laneKind | any | Default: what the model suggests (beams -> LINE, plates -> SURFACE). |
| readDeck | boolean | Read reference line, width, kerb offset, cross beams and skew from the deck. |
| vehicles | object | Vehicle options. levels: assessment levels NORMAL, T26, T18, T7_5, T3, FE1, FE2 (lower levels are stacked in automatically); allModel1, allModel2, limitStates, svType… |
| reference | object | Line lanes: the reference line. mode RANGE (range: element ids e.g. '1-10'), GROUP (group: structure group name) or NODES (nodes: [ids]). |
| 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. |
| laneSource | any |
| 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. |
| confirmPlanHash | string |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"lanes": {
"type": "object",
"properties": {
"level": {
"type": "string"
},
"picked": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Lane options. Main one: picked — the loading models to lay out: M1S (ALL model 1 single), M1C (convoy), M2 (ALL model 2), SV, HB, SVM1S, SVM1C, SVM2, FW (footway), ACC (accidental). Also level, packing, svVehicle…",
"additionalProperties": true
},
"scope": {
"enum": [
"ALL",
"LANES",
"LOADS"
],
"default": "ALL",
"description": "ALL = lanes + vehicles + cases; LANES = lanes only; LOADS = vehicles and cases on the model's existing lanes."
},
"config": {
"type": "object",
"description": "Advanced: any other plugin configuration field, deep-merged over the defaults.",
"additionalProperties": true
},
"section": {
"type": "object",
"description": "Carriageway cross-section, m: width, kerbOffset, markedLanes, hardShoulder, verges, footways, central reserve. width/kerbOffset are read from the deck if omitted.",
"additionalProperties": true
},
"surface": {
"type": "object",
"description": "Surface lanes: the alignment. mode GROUP (group), NODES (nodes) or RANGE (range).",
"additionalProperties": true
},
"laneKind": {
"enum": [
"LINE",
"SURFACE"
],
"description": "Default: what the model suggests (beams -> LINE, plates -> SURFACE)."
},
"readDeck": {
"type": "boolean",
"default": true,
"description": "Read reference line, width, kerb offset, cross beams and skew from the deck."
},
"vehicles": {
"type": "object",
"properties": {
"levels": {
"type": "array",
"items": {
"type": "string"
}
},
"allModel2": {
"type": "boolean"
}
},
"description": "Vehicle options. levels: assessment levels NORMAL, T26, T18, T7_5, T3, FE1, FE2 (lower levels are stacked in automatically); allModel1, allModel2, limitStates, svType…",
"additionalProperties": true
},
"reference": {
"type": "object",
"description": "Line lanes: the reference line. mode RANGE (range: element ids e.g. '1-10'), GROUP (group: structure group name) or NODES (nodes: [ids]).",
"additionalProperties": true
},
"codeChange": {
"type": "boolean",
"default": false,
"description": "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."
},
"laneSource": {
"enum": [
"NEW",
"EXISTING"
],
"default": "NEW"
},
"unitSwitch": {
"type": "boolean",
"default": false,
"description": "Allow switching CIVIL NX to kN, m for the write and back afterwards (needed for non-SI models)."
},
"writeOptions": {
"type": "object",
"description": "Lane write options: loadDist LANE|CROSS, groupName (cross-beam group), moving BOTH|FORWARD|BACKWARD, skewStart, skewEnd.",
"additionalProperties": true
},
"confirmPlanHash": {
"type": "string"
}
},
"additionalProperties": false
}| shear | boolean | Run the shear check (default true). |
| maxRows | integer | Stop above this many force rows (default 1000). |
| torsion | boolean | Torsion check, CS 455 cl 5.17–5.27, on rows that carry a torque (default true, as in the plugin). |
| stations | array | Element ends to assess (default: the section's first element, both ends, midspan). Location 'support' removes the shear enhancement near supports. |
| axialSign | any | Positive MIDAS axial is tension (-1, default) or compression (1). |
| sectionId* | integer | string | The CIVIL NX section id (a beam section). |
| maxResults | integer | How many rows to list, worst first (default 40). |
| momentSign | any | Positive MIDAS My is sagging (1, default) or hogging (-1). |
| 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. |
| includeJobs | boolean | Also return the exact engine job of each listed row (for audit or re-running in the plugin). |
| concreteModel | any | 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). |
| tensionOrigin | any |
| classification | any | RC only in these tools. |
| drawingReference | string |
| secondaryActions | any | Vy / T / Mz: assess N–My–Vz and list them (default), or refuse rows where they are non-zero. |
| 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. |
{
"type": "object",
"required": [
"sectionId",
"rebar"
],
"properties": {
"fy": {
"type": "number",
"description": "Reinforcement yield strength, MPa (default 500)."
},
"fcu": {
"type": "number",
"description": "Concrete cube strength, MPa (default: from the model's EN grade C../.. — its cube value)."
},
"cases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Load cases / combinations by name (default: every load combination the model has)."
},
"image": {
"type": "boolean",
"description": "cs455_describe_section only: return the drawing of the section with its bars (default true)."
},
"links": {
"type": "object",
"required": [
"spacing"
],
"properties": {
"dia": {
"type": [
"number",
"string"
],
"description": "mm, or inches '0.5in', or US '#4' (default 12)"
},
"fyv": {
"type": "number"
},
"legs": {
"type": "integer"
},
"spacing": {
"type": "number",
"description": "mm along the member"
}
},
"description": "Links (omit for concrete-only shear, cl 5.6). Used by shear and by torsion.",
"additionalProperties": false
},
"rebar": {
"type": "object",
"properties": {
"gap": {
"type": [
"number",
"string"
]
},
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"face",
"count",
"dia"
],
"properties": {
"to": {
"type": [
"number",
"string"
]
},
"dia": {
"type": [
"number",
"string"
],
"description": "Bar diameter: mm (32, 28.6), inches ('1.128in', '1 1/8\"') or a US bar number ('#9')."
},
"face": {
"enum": [
"bottom",
"top",
"side",
"depth"
]
},
"from": {
"type": [
"number",
"string"
]
},
"span": {
"type": "string"
},
"count": {
"type": [
"string",
"integer"
],
"description": "8 (bars) or '@150' (spacing, mm)"
},
"depth": {
"type": [
"number",
"string"
]
},
"layer": {
"type": "integer"
},
"which": {
"enum": [
"both",
"left",
"right"
]
}
},
"additionalProperties": false
}
},
"cover": {
"type": "number"
},
"coords": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"datum": {
"enum": [
"bc",
"bl",
"tc"
]
}
},
"additionalProperties": false
}
},
"description": "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, 1 = outermost), count ('8' bars or '@150' spacing), dia (mm, or '1.128in', or '#9'), depth (mm below top, face 'depth' only), span ('±430:900' width limits), from/to/which (side bars)}], coords {datum: bc|bl|tc, text: 'y z dia' per line, mm}.",
"additionalProperties": false
},
"shear": {
"type": "boolean",
"description": "Run the shear check (default true)."
},
"maxRows": {
"type": "integer",
"description": "Stop above this many force rows (default 1000)."
},
"torsion": {
"type": "boolean",
"description": "Torsion check, CS 455 cl 5.17–5.27, on rows that carry a torque (default true, as in the plugin)."
},
"stations": {
"type": "array",
"items": {
"type": "object",
"required": [
"element"
],
"properties": {
"end": {
"enum": [
"I",
"J",
"IJ"
]
},
"element": {
"type": "integer"
},
"location": {
"enum": [
"support",
"midspan",
"quarter",
"other"
]
}
},
"additionalProperties": false
},
"description": "Element ends to assess (default: the section's first element, both ends, midspan). Location 'support' removes the shear enhancement near supports."
},
"axialSign": {
"enum": [
-1,
1
],
"description": "Positive MIDAS axial is tension (-1, default) or compression (1)."
},
"sectionId": {
"type": [
"integer",
"string"
],
"description": "The CIVIL NX section id (a beam section)."
},
"maxResults": {
"type": "integer",
"description": "How many rows to list, worst first (default 40)."
},
"momentSign": {
"enum": [
1,
-1
],
"description": "Positive MIDAS My is sagging (1, default) or hogging (-1)."
},
"restrained": {
"type": "boolean",
"description": "Compression bars are restrained by links (cl 5.3.1). Default false: compression bars get no compressive strength (cl 5.3.2(1)), conservative."
},
"includeJobs": {
"type": "boolean",
"description": "Also return the exact engine job of each listed row (for audit or re-running in the plugin)."
},
"concreteModel": {
"enum": [
"parabolic",
"rectangular"
],
"description": "Figure 3.4.1 curve (default) or the constant 0.6 fcu/γmc block of cl 5.1(3)."
},
"concreteParts": {
"type": "object",
"description": "Composite sections: { part id: f_cu } where a part's grade differs (describe lists the parts)."
},
"tensionOrigin": {
"enum": [
"externally applied axial tension",
"restraint-induced tension"
]
},
"classification": {
"enum": [
"RC"
],
"description": "RC only in these tools."
},
"drawingReference": {
"type": "string"
},
"secondaryActions": {
"enum": [
"report",
"block"
],
"description": "Vy / T / Mz: assess N–My–Vz and list them (default), or refuse rows where they are non-zero."
},
"confirmDimensions": {
"type": "boolean",
"description": "Only after the user has compared the drawn section with the drawing: needed when CIVIL NX published no properties to check the outline against."
}
},
"additionalProperties": false
}| 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. |
| 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. |
{
"type": "object",
"required": [
"sectionId"
],
"properties": {
"image": {
"type": "boolean",
"description": "cs455_describe_section only: return the drawing of the section with its bars (default true)."
},
"rebar": {
"type": "object",
"properties": {
"gap": {
"type": [
"number",
"string"
]
},
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"face",
"count",
"dia"
],
"properties": {
"to": {
"type": [
"number",
"string"
]
},
"dia": {
"type": [
"number",
"string"
],
"description": "Bar diameter: mm (32, 28.6), inches ('1.128in', '1 1/8\"') or a US bar number ('#9')."
},
"face": {
"enum": [
"bottom",
"top",
"side",
"depth"
]
},
"from": {
"type": [
"number",
"string"
]
},
"span": {
"type": "string"
},
"count": {
"type": [
"string",
"integer"
],
"description": "8 (bars) or '@150' (spacing, mm)"
},
"depth": {
"type": [
"number",
"string"
]
},
"layer": {
"type": "integer"
},
"which": {
"enum": [
"both",
"left",
"right"
]
}
},
"additionalProperties": false
}
},
"cover": {
"type": "number"
},
"coords": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"datum": {
"enum": [
"bc",
"bl",
"tc"
]
}
},
"additionalProperties": false
}
},
"description": "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, 1 = outermost), count ('8' bars or '@150' spacing), dia (mm, or '1.128in', or '#9'), depth (mm below top, face 'depth' only), span ('±430:900' width limits), from/to/which (side bars)}], coords {datum: bc|bl|tc, text: 'y z dia' per line, mm}.",
"additionalProperties": false
},
"sectionId": {
"type": [
"integer",
"string"
],
"description": "The CIVIL NX section id (a beam section)."
},
"restrained": {
"type": "boolean",
"description": "Compression bars are restrained by links (cl 5.3.1). Default false: compression bars get no compressive strength (cl 5.3.2(1)), conservative."
},
"concreteParts": {
"type": "object",
"description": "Composite sections: { part id: f_cu } where a part's grade differs (describe lists the parts)."
},
"confirmDimensions": {
"type": "boolean",
"description": "Only after the user has compared the drawn section with the drawing: needed when CIVIL NX published no properties to check the outline against."
}
},
"additionalProperties": false
}| shear | boolean | Run the shear check (default true). |
| report | object |
| element* | integer |
| maxRows | integer | Stop above this many force rows (default 1000). |
| torsion | boolean | Torsion check, CS 455 cl 5.17–5.27, on rows that carry a torque (default true, as in the plugin). |
| location | any |
| stations | array | Element ends to assess (default: the section's first element, both ends, midspan). Location 'support' removes the shear enhancement near supports. |
| axialSign | any | Positive MIDAS axial is tension (-1, default) or compression (1). |
| sectionId* | integer | string | The CIVIL NX section id (a beam section). |
| momentSign | any | Positive MIDAS My is sagging (1, default) or hogging (-1). |
| 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. |
| concreteModel | any | 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). |
| tensionOrigin | any |
| classification | any | RC only in these tools. |
| drawingReference | string |
| secondaryActions | any | Vy / T / Mz: assess N–My–Vz and list them (default), or refuse rows where they are non-zero. |
| 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. |
{
"type": "object",
"required": [
"sectionId",
"rebar",
"element"
],
"properties": {
"fy": {
"type": "number",
"description": "Reinforcement yield strength, MPa (default 500)."
},
"end": {
"enum": [
"I",
"J"
]
},
"fcu": {
"type": "number",
"description": "Concrete cube strength, MPa (default: from the model's EN grade C../.. — its cube value)."
},
"cases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Load cases / combinations by name (default: every load combination the model has)."
},
"image": {
"type": "boolean",
"description": "cs455_describe_section only: return the drawing of the section with its bars (default true)."
},
"links": {
"type": "object",
"required": [
"spacing"
],
"properties": {
"dia": {
"type": [
"number",
"string"
],
"description": "mm, or inches '0.5in', or US '#4' (default 12)"
},
"fyv": {
"type": "number"
},
"legs": {
"type": "integer"
},
"spacing": {
"type": "number",
"description": "mm along the member"
}
},
"description": "Links (omit for concrete-only shear, cl 5.6). Used by shear and by torsion.",
"additionalProperties": false
},
"rebar": {
"type": "object",
"properties": {
"gap": {
"type": [
"number",
"string"
]
},
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"face",
"count",
"dia"
],
"properties": {
"to": {
"type": [
"number",
"string"
]
},
"dia": {
"type": [
"number",
"string"
],
"description": "Bar diameter: mm (32, 28.6), inches ('1.128in', '1 1/8\"') or a US bar number ('#9')."
},
"face": {
"enum": [
"bottom",
"top",
"side",
"depth"
]
},
"from": {
"type": [
"number",
"string"
]
},
"span": {
"type": "string"
},
"count": {
"type": [
"string",
"integer"
],
"description": "8 (bars) or '@150' (spacing, mm)"
},
"depth": {
"type": [
"number",
"string"
]
},
"layer": {
"type": "integer"
},
"which": {
"enum": [
"both",
"left",
"right"
]
}
},
"additionalProperties": false
}
},
"cover": {
"type": "number"
},
"coords": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"datum": {
"enum": [
"bc",
"bl",
"tc"
]
}
},
"additionalProperties": false
}
},
"description": "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, 1 = outermost), count ('8' bars or '@150' spacing), dia (mm, or '1.128in', or '#9'), depth (mm below top, face 'depth' only), span ('±430:900' width limits), from/to/which (side bars)}], coords {datum: bc|bl|tc, text: 'y z dia' per line, mm}.",
"additionalProperties": false
},
"shear": {
"type": "boolean",
"description": "Run the shear check (default true)."
},
"report": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"client": {
"type": "string"
},
"project": {
"type": "string"
},
"revision": {
"type": "string"
},
"checkedBy": {
"type": "string"
},
"projectNo": {
"type": "string"
},
"reference": {
"type": "string"
},
"preparedBy": {
"type": "string"
}
},
"additionalProperties": false
},
"element": {
"type": "integer"
},
"maxRows": {
"type": "integer",
"description": "Stop above this many force rows (default 1000)."
},
"torsion": {
"type": "boolean",
"description": "Torsion check, CS 455 cl 5.17–5.27, on rows that carry a torque (default true, as in the plugin)."
},
"location": {
"enum": [
"support",
"midspan",
"quarter",
"other"
]
},
"stations": {
"type": "array",
"items": {
"type": "object",
"required": [
"element"
],
"properties": {
"end": {
"enum": [
"I",
"J",
"IJ"
]
},
"element": {
"type": "integer"
},
"location": {
"enum": [
"support",
"midspan",
"quarter",
"other"
]
}
},
"additionalProperties": false
},
"description": "Element ends to assess (default: the section's first element, both ends, midspan). Location 'support' removes the shear enhancement near supports."
},
"axialSign": {
"enum": [
-1,
1
],
"description": "Positive MIDAS axial is tension (-1, default) or compression (1)."
},
"sectionId": {
"type": [
"integer",
"string"
],
"description": "The CIVIL NX section id (a beam section)."
},
"momentSign": {
"enum": [
1,
-1
],
"description": "Positive MIDAS My is sagging (1, default) or hogging (-1)."
},
"restrained": {
"type": "boolean",
"description": "Compression bars are restrained by links (cl 5.3.1). Default false: compression bars get no compressive strength (cl 5.3.2(1)), conservative."
},
"concreteModel": {
"enum": [
"parabolic",
"rectangular"
],
"description": "Figure 3.4.1 curve (default) or the constant 0.6 fcu/γmc block of cl 5.1(3)."
},
"concreteParts": {
"type": "object",
"description": "Composite sections: { part id: f_cu } where a part's grade differs (describe lists the parts)."
},
"tensionOrigin": {
"enum": [
"externally applied axial tension",
"restraint-induced tension"
]
},
"classification": {
"enum": [
"RC"
],
"description": "RC only in these tools."
},
"drawingReference": {
"type": "string"
},
"secondaryActions": {
"enum": [
"report",
"block"
],
"description": "Vy / T / Mz: assess N–My–Vz and list them (default), or refuse rows where they are non-zero."
},
"confirmDimensions": {
"type": "boolean",
"description": "Only after the user has compared the drawn section with the drawing: needed when CIVIL NX published no properties to check the outline against."
}
},
"additionalProperties": false
}| Program name printed on the reports, when CIVIL NX does not report its version. |
| snapshots | boolean | A picture per stage in the PDF from CIVIL NX (/view/CAPTURE). |
| includeLoads | boolean | Include the load group matrix and load columns. |
| maxSnapshots | integer | With more stages than this, pictures for this many evenly spread stages. |
| displacements | boolean |
{
"type": "object",
"properties": {
"view": {
"enum": [
"iso",
"plan",
"elevation",
"side"
],
"default": "iso"
},
"series": {
"type": "string",
"default": "Summation"
},
"formats": {
"type": "array",
"items": {
"enum": [
"xlsx",
"pdf"
]
},
"description": "Default both."
},
"members": {
"type": "object",
"properties": {
"part": {
"type": [
"string",
"integer"
],
"default": "gov"
},
"table": {
"enum": [
"BEAMFORCE",
"BEAMSTRESS"
],
"default": "BEAMFORCE"
},
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"series": {
"type": "string",
"default": "Summation"
},
"elements": {
"type": "array",
"items": {
"type": "integer"
}
},
"component": {
"type": "string"
}
},
"description": "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 forces, Cb(min/max) for stresses; heads such as Axial, Shear-z, Moment-y, Bend(+z), Cb1(-y+z), or short names My, Mz, Fx, Fz), part 'gov' (default: on composite members the governing section part at each position) or 1–4 (1 = girder, 2 = slab), series (default Summation). Composite members' stresses are read per section part (COMPSECTBEAMSTRESS), as the plugin does.",
"additionalProperties": false
},
"program": {
"type": "string",
"description": "Program name printed on the reports, when CIVIL NX does not report its version."
},
"snapshots": {
"type": "boolean",
"default": true,
"description": "A picture per stage in the PDF from CIVIL NX (/view/CAPTURE)."
},
"includeLoads": {
"type": "boolean",
"default": true,
"description": "Include the load group matrix and load columns."
},
"maxSnapshots": {
"type": "integer",
"default": 60,
"maximum": 200,
"minimum": 1,
"description": "With more stages than this, pictures for this many evenly spread stages."
},
"displacements": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
}| listSeries | boolean | Also list the construction-stage series the model publishes. |
| displacements | boolean |
{
"type": "object",
"properties": {
"nodes": {
"type": "array",
"items": {
"type": "integer"
},
"maxItems": 50,
"description": "Node ids whose displacements to list per stage."
},
"series": {
"type": "string",
"default": "Summation",
"description": "Construction-stage result series for the displacements."
},
"stages": {
"type": "array",
"items": {
"type": "string"
},
"description": "Stage names to report (default: every stage)."
},
"members": {
"type": "object",
"properties": {
"part": {
"type": [
"string",
"integer"
],
"default": "gov"
},
"table": {
"enum": [
"BEAMFORCE",
"BEAMSTRESS"
],
"default": "BEAMFORCE"
},
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"series": {
"type": "string",
"default": "Summation"
},
"elements": {
"type": "array",
"items": {
"type": "integer"
}
},
"component": {
"type": "string"
},
"components": {
"type": "array",
"items": {
"type": "string"
},
"description": "Several components at once (instead of component)."
},
"detailElements": {
"type": "array",
"items": {
"type": "integer"
},
"maxItems": 20
}
},
"description": "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 forces, Cb(min/max) for stresses; heads such as Axial, Shear-z, Moment-y, Bend(+z), Cb1(-y+z), or short names My, Mz, Fx, Fz), part 'gov' (default: on composite members the governing section part at each position) or 1–4 (1 = girder, 2 = slab), series (default Summation). Composite members' stresses are read per section part (COMPSECTBEAMSTRESS), as the plugin does.",
"additionalProperties": false
},
"listSeries": {
"type": "boolean",
"default": false,
"description": "Also list the construction-stage series the model publishes."
},
"displacements": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false
},
"project": {
"type": "object",
"description": "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 | ..., concrete 'C32/40', steel 'B500B'}; geometry {spans [m per cell], clear_height, t_top, t_bot, t_ext, t_int, haunch_top [w,h], haunch_bot}; ground {fill, fill_density, surfacing_thk, surfacing_density, soil_density, soil_sub, phi, k0_override, subgrade (kN/m3), side_springs}; water {gw_depth, internal_depth}; earth_pressure {method K0 | annexB | cl94, fill_6n6p, ...}; traffic {carriageway, lm1, lm2, braking, surcharge, step, lm3 {enabled, sv80, sv100, sv196, gaps}, vehicles}; thermal {dT_exp, dT_con, dT_heat, dT_cool, shrinkage}; loads {sdl}; reinforcement {top_slab, base_slab, walls}; design {allowable_bearing, RH, t0, creep_phi}. Lengths m, bars [dia mm, spacing mm].",
"additionalProperties": true
},
"newDocument": {
"type": "boolean",
"description": "DESTRUCTIVE: open a new CIVIL NX model first (the open one is replaced; unsaved work is lost)."
},
"confirmPlanHash": {
"type": "string"
}
},
"additionalProperties": false
}| 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). |
| 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. Per class (linear = lines/polylines/arcs/splines, face = 3DFACE/polyface/mesh, point): as BEAM|TRUSS|IGNORE (linear), PLATE|IGNORE (face), NODE|IGNORE (point); material, section (linear) or thickness (face) as an id, a name or {id,name} (omitted = the DXF default property, created on import); beta (deg); group ('{layer}' = the layer name); split (split at intersections); plate THICK|THIN; include false drops a layer. Example: {rules:[{layer:'*GIRDER*', class:'linear', as:'BEAM', material:'C40/50', section:'G1', group:'Girders'}, {layer:'DIM*', include:false}], layers:{SLAB:{face:{as:'PLATE', thickness:'Slab 250'}}}} |
| arcChord | number | Instead of arcSegments: largest chord deviation, mm. |
| 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. |
| dxfBase64 | string | The DXF file's bytes, base64, up to 4 MB decoded. |
| arcSegments | integer | Arcs/circles/splines: segments per full circle. |
| planeOffset | number | Flat drawings only: metres added along the axis the drawing's normal maps to. |
| drawingUnits | any | The drawing's units when it does not record them ($INSUNITS; R12 files never do), or to override them. |
| 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). |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
| 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 = keep the model's unit and convert the coordinates. |
| ignoreAnnotationLayers | boolean | Untick layers that are empty or mostly annotation (TEXT, DIMENSION, HATCH…), as the plugin's bulk action does. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "An https address the DXF is downloaded from, up to 25 MB (public hosts only on the website)."
},
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"plane": {
"enum": [
"XY",
"XZ",
"YZ"
],
"default": "XY",
"description": "Flat drawings only: XY → plan (global XY), XZ → elevation, YZ → side elevation."
},
"origin": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"mode": {
"enum": [
"none",
"min",
"user"
]
}
},
"description": "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.",
"additionalProperties": false
},
"dxfText": {
"type": "string",
"description": "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)."
},
"mapping": {
"type": "object",
"description": "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. Per class (linear = lines/polylines/arcs/splines, face = 3DFACE/polyface/mesh, point): as BEAM|TRUSS|IGNORE (linear), PLATE|IGNORE (face), NODE|IGNORE (point); material, section (linear) or thickness (face) as an id, a name or {id,name} (omitted = the DXF default property, created on import); beta (deg); group ('{layer}' = the layer name); split (split at intersections); plate THICK|THIN; include false drops a layer. Example: {rules:[{layer:'*GIRDER*', class:'linear', as:'BEAM', material:'C40/50', section:'G1', group:'Girders'}, {layer:'DIM*', include:false}], layers:{SLAB:{face:{as:'PLATE', thickness:'Slab 250'}}}}",
"additionalProperties": true
},
"arcChord": {
"type": "number",
"description": "Instead of arcSegments: largest chord deviation, mm."
},
"fileName": {
"type": "string",
"description": "Name of the drawing (default: from the URL or path, else drawing.dxf). It names the import's master group DXF_<name> #<token>."
},
"filePath": {
"type": "string",
"description": "Local server only: a path to the DXF on this machine, up to 50 MB."
},
"dxfBase64": {
"type": "string",
"description": "The DXF file's bytes, base64, up to 4 MB decoded."
},
"arcSegments": {
"type": "integer",
"default": 24,
"minimum": 4,
"description": "Arcs/circles/splines: segments per full circle."
},
"planeOffset": {
"type": "number",
"description": "Flat drawings only: metres added along the axis the drawing's normal maps to."
},
"drawingUnits": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"description": "The drawing's units when it does not record them ($INSUNITS; R12 files never do), or to override them."
},
"mergeExisting": {
"type": "boolean",
"default": false,
"description": "Reuse existing model nodes within the merge tolerance instead of creating new ones there (reused nodes join no group)."
},
"mergeTolerance": {
"type": "number",
"default": 1,
"description": "Node merge tolerance, mm (clean-up)."
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
},
"matchModelUnits": {
"type": "boolean",
"default": true,
"description": "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 = keep the model's unit and convert the coordinates."
},
"ignoreAnnotationLayers": {
"type": "boolean",
"default": false,
"description": "Untick layers that are empty or mostly annotation (TEXT, DIMENSION, HATCH…), as the plugin's bulk action does."
}
},
"additionalProperties": false
}| arcChord | number | Instead of arcSegments: largest chord deviation, mm. |
| 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. |
| dxfBase64 | string | The DXF file's bytes, base64, up to 4 MB decoded. |
| arcSegments | integer | Arcs/circles/splines: segments per full circle. |
| planeOffset | number | Flat drawings only: metres added along the axis the drawing's normal maps to. |
| drawingUnits | any | The drawing's units when it does not record them ($INSUNITS; R12 files never do), or to override them. |
| mergeTolerance | number | Node merge tolerance, mm (clean-up). |
| 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 = keep the model's unit and convert the coordinates. |
| ignoreAnnotationLayers | boolean | Untick layers that are empty or mostly annotation (TEXT, DIMENSION, HATCH…), as the plugin's bulk action does. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "An https address the DXF is downloaded from, up to 25 MB (public hosts only on the website)."
},
"plane": {
"enum": [
"XY",
"XZ",
"YZ"
],
"default": "XY",
"description": "Flat drawings only: XY → plan (global XY), XZ → elevation, YZ → side elevation."
},
"origin": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"mode": {
"enum": [
"none",
"min",
"user"
]
}
},
"description": "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.",
"additionalProperties": false
},
"dxfText": {
"type": "string",
"description": "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)."
},
"mapping": {
"type": "object",
"description": "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. Per class (linear = lines/polylines/arcs/splines, face = 3DFACE/polyface/mesh, point): as BEAM|TRUSS|IGNORE (linear), PLATE|IGNORE (face), NODE|IGNORE (point); material, section (linear) or thickness (face) as an id, a name or {id,name} (omitted = the DXF default property, created on import); beta (deg); group ('{layer}' = the layer name); split (split at intersections); plate THICK|THIN; include false drops a layer. Example: {rules:[{layer:'*GIRDER*', class:'linear', as:'BEAM', material:'C40/50', section:'G1', group:'Girders'}, {layer:'DIM*', include:false}], layers:{SLAB:{face:{as:'PLATE', thickness:'Slab 250'}}}}",
"additionalProperties": true
},
"arcChord": {
"type": "number",
"description": "Instead of arcSegments: largest chord deviation, mm."
},
"fileName": {
"type": "string",
"description": "Name of the drawing (default: from the URL or path, else drawing.dxf). It names the import's master group DXF_<name> #<token>."
},
"filePath": {
"type": "string",
"description": "Local server only: a path to the DXF on this machine, up to 50 MB."
},
"dxfBase64": {
"type": "string",
"description": "The DXF file's bytes, base64, up to 4 MB decoded."
},
"arcSegments": {
"type": "integer",
"default": 24,
"minimum": 4,
"description": "Arcs/circles/splines: segments per full circle."
},
"planeOffset": {
"type": "number",
"description": "Flat drawings only: metres added along the axis the drawing's normal maps to."
},
"drawingUnits": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"description": "The drawing's units when it does not record them ($INSUNITS; R12 files never do), or to override them."
},
"mergeTolerance": {
"type": "number",
"default": 1,
"description": "Node merge tolerance, mm (clean-up)."
},
"matchModelUnits": {
"type": "boolean",
"default": true,
"description": "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 = keep the model's unit and convert the coordinates."
},
"ignoreAnnotationLayers": {
"type": "boolean",
"default": false,
"description": "Untick layers that are empty or mostly annotation (TEXT, DIMENSION, HATCH…), as the plugin's bulk action does."
}
},
"additionalProperties": false
}| zEccentric | boolean | §8.3.3(5): place the vertical force at e = ±b/4. |
| cscdOverride | number | null |
| lineOfAction | any | Transverse wind at mid-height of d_tot (aref) or at the section centroids. |
| nationalAnnex | string | Built-in annex id; default CEN. |
| confirmPlanHash | string |
| terrainCategory | string | 0, I, II (default), III or IV. |
| returnPeriodYears | number | Default 50. |
| acknowledgeOutOfScope | boolean | Only with the user's agreement: apply §8 to a form it does not cover. |
| acknowledgeUnverifiedAnnex | boolean |
{
"type": "object",
"properties": {
"co": {
"type": "number",
"description": "Orography factor c_o (default 1)."
},
"vb0": {
"type": "number",
"description": "Fundamental basic wind velocity v_b,0, m/s (CEN has no map)."
},
"cdir": {
"type": "number"
},
"apply": {
"type": "boolean",
"default": false
},
"group": {
"type": "string"
},
"bridge": {
"type": "object",
"properties": {
"L": {
"type": "number",
"description": "Span / loaded length."
},
"b": {
"type": "number",
"description": "Deck width b."
},
"d": {
"type": "number",
"description": "Deck depth d (§8.3.1 Figure 8.5)."
},
"sides": {
"type": "string",
"description": "Parapets on one or both sides (one|both)."
},
"method": {
"type": "string",
"description": "general (default) or the simplified route the plugin offers."
},
"traffic": {
"type": "string",
"description": "Traffic on the deck for the §8.3.1(5) depth (none, road, rail…)."
},
"restraint": {
"type": "string",
"description": "Table 8.1 parapet/barrier case (plugin values, default none)."
},
"groundToSoffit": {
"type": "number",
"description": "Height of the soffit above ground (for z_e)."
},
"inclinationDeg": {
"type": "number"
},
"structuralForm": {
"type": "string",
"description": "normal (default), truss, arch, cable-stayed… — forms outside §8 need acknowledgeOutOfScope."
},
"transverseSlopeDeg": {
"type": "number"
}
},
"description": "Deck inputs, metres. Omitted geometry is measured from the model (ec_wind_apply) — ec_wind_bridge needs b, d, L and groundToSoffit.",
"additionalProperties": true
},
"cseason": {
"type": "number"
},
"directions": {
"type": "object",
"description": "Global load directions to write, e.g. {\"Z-\": false}. Default: all six (X±, Y±, Z±).",
"additionalProperties": {
"type": "boolean"
}
},
"elementIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"zEccentric": {
"type": "boolean",
"default": true,
"description": "§8.3.3(5): place the vertical force at e = ±b/4."
},
"cscdOverride": {
"type": [
"number",
"null"
]
},
"lineOfAction": {
"enum": [
"aref",
"centroid"
],
"default": "aref",
"description": "Transverse wind at mid-height of d_tot (aref) or at the section centroids."
},
"nationalAnnex": {
"type": "string",
"description": "Built-in annex id; default CEN."
},
"confirmPlanHash": {
"type": "string"
},
"terrainCategory": {
"type": "string",
"description": "0, I, II (default), III or IV."
},
"returnPeriodYears": {
"type": "number",
"description": "Default 50."
},
"acknowledgeOutOfScope": {
"type": "boolean",
"default": false,
"description": "Only with the user's agreement: apply §8 to a form it does not cover."
},
"acknowledgeUnverifiedAnnex": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}| nationalAnnex | string | Built-in annex id; default CEN. |
| terrainCategory | string | 0, I, II (default), III or IV. |
| returnPeriodYears | number | Default 50. |
{
"type": "object",
"required": [
"bridge"
],
"properties": {
"co": {
"type": "number",
"description": "Orography factor c_o (default 1)."
},
"vb0": {
"type": "number",
"description": "Fundamental basic wind velocity v_b,0, m/s (CEN has no map)."
},
"cdir": {
"type": "number"
},
"bridge": {
"type": "object",
"properties": {
"L": {
"type": "number",
"description": "Span / loaded length."
},
"b": {
"type": "number",
"description": "Deck width b."
},
"d": {
"type": "number",
"description": "Deck depth d (§8.3.1 Figure 8.5)."
},
"sides": {
"type": "string",
"description": "Parapets on one or both sides (one|both)."
},
"method": {
"type": "string",
"description": "general (default) or the simplified route the plugin offers."
},
"traffic": {
"type": "string",
"description": "Traffic on the deck for the §8.3.1(5) depth (none, road, rail…)."
},
"restraint": {
"type": "string",
"description": "Table 8.1 parapet/barrier case (plugin values, default none)."
},
"groundToSoffit": {
"type": "number",
"description": "Height of the soffit above ground (for z_e)."
},
"inclinationDeg": {
"type": "number"
},
"structuralForm": {
"type": "string",
"description": "normal (default), truss, arch, cable-stayed… — forms outside §8 need acknowledgeOutOfScope."
},
"transverseSlopeDeg": {
"type": "number"
}
},
"description": "Deck inputs, metres. Omitted geometry is measured from the model (ec_wind_apply) — ec_wind_bridge needs b, d, L and groundToSoffit.",
"additionalProperties": true
},
"cseason": {
"type": "number"
},
"spanAxis": {
"enum": [
"X",
"Y"
],
"default": "X"
},
"directions": {
"type": "object",
"description": "Global load directions to write, e.g. {\"Z-\": false}. Default: all six (X±, Y±, Z±).",
"additionalProperties": {
"type": "boolean"
}
},
"zEccentric": {
"type": "boolean",
"default": true
},
"cscdOverride": {
"type": [
"number",
"null"
]
},
"nationalAnnex": {
"type": "string",
"description": "Built-in annex id; default CEN."
},
"terrainCategory": {
"type": "string",
"description": "0, I, II (default), III or IV."
},
"returnPeriodYears": {
"type": "number",
"description": "Default 50."
}
},
"additionalProperties": false
}| toleranceMm | number | Nodes closer than this (mm, 3D) count as coincident. |
| 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. |
{
"type": "object",
"properties": {
"images": {
"anyOf": [
{
"enum": [
"none"
],
"type": "string"
},
{
"type": "object",
"properties": {
"keys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Picture keys from model_report_images (e.g. model:plan, loads:Traffic, figure:Deflection)."
},
"legend": {
"type": "object",
"properties": {
"values": {
"enum": [
"exponential",
"fixed"
],
"type": "string",
"description": "Number format of the beam diagrams' legend (CIVIL NX's own is exponential)."
},
"decimals": {
"type": "integer",
"maximum": 6,
"minimum": 0,
"description": "Decimal places in the legend."
}
},
"description": "Beam diagram legend format. CIVIL NX offers no legend min/max: the range always spans the result.",
"additionalProperties": false
},
"loadViews": {
"anyOf": [
{
"enum": [
"all"
],
"type": "string"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Applied-load views: static load case names, or \"all\"."
},
"modelViews": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "array",
"items": {
"enum": [
"iso",
"plan",
"front",
"side"
],
"type": "string"
}
}
],
"description": "FE model views; true = all four, false = none."
},
"beamDiagrams": {
"type": "array",
"items": {
"type": "object",
"required": [
"loadCase"
],
"properties": {
"stage": {
"type": "string",
"description": "Construction stage name (with caseType CS)."
},
"minmax": {
"enum": [
"Max",
"Min"
],
"type": "string",
"description": "Envelope combinations."
},
"caseType": {
"enum": [
"ST",
"CB",
"CS"
],
"type": "string"
},
"loadCase": {
"type": "string",
"description": "Static case or combination name; for a construction stage, the result part (Summation, Dead Load, Tendon Primary …)."
},
"component": {
"enum": [
"Fx",
"Fy",
"Fz",
"Fyz",
"Mx",
"My",
"Mz",
"Myz",
"Mb",
"Mt",
"Mw"
],
"type": "string",
"default": "My"
}
},
"additionalProperties": false
},
"description": "Beam force/moment diagrams; need an analysed model."
},
"savedFigures": {
"anyOf": [
{
"enum": [
"all"
],
"type": "string"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Figures saved in the model (by name), or \"all\" (default)."
}
},
"additionalProperties": false
}
],
"description": "Pictures CIVIL NX renders into the report. \"none\" for none; otherwise an object (omitted fields keep the defaults: modelViews [\"iso\"], savedFigures \"all\")."
},
"details": {
"type": "object",
"properties": {
"rev": {
"type": "string"
},
"date": {
"type": "string"
},
"jobNo": {
"type": "string"
},
"author": {
"type": "string"
},
"client": {
"type": "string"
},
"checker": {
"type": "string"
},
"country": {
"type": "string"
},
"project": {
"type": "string"
},
"designStandard": {
"type": "string"
}
},
"description": "Document details printed on the cover (all optional).",
"additionalProperties": false
},
"formats": {
"type": "array",
"items": {
"enum": [
"html",
"xlsx",
"docx",
"pdf"
],
"type": "string"
},
"default": [
"html"
]
},
"language": {
"enum": [
"en",
"fr",
"de",
"el",
"pl"
],
"type": "string",
"default": "en",
"description": "Language of the check wording / the report: English, French, German, Greek, Polish."
},
"numbering": {
"type": "boolean",
"default": true,
"description": "Number chapters and figures."
},
"toleranceMm": {
"type": "number",
"default": 1,
"description": "Nodes closer than this (mm, 3D) count as coincident.",
"exclusiveMinimum": 0
},
"outlierFactor": {
"type": "number",
"default": 10,
"description": "An element longer or shorter than the median length by this factor is an outlier.",
"exclusiveMinimum": 1
},
"tendonCoordinates": {
"type": "boolean",
"default": true,
"description": "Read the computed tendon coordinate table (needs an analysed model) when the report has tendons."
}
},
"additionalProperties": false
}| tendons | boolean | Tendons drawn at their duct diameter. |
| format3d | any | R12 is about half the size (Autodesk Viewer may show it empty). |
| joinDeck | boolean | Join side-by-side girders' slab strips into one continuous deck. |
| wireframe | boolean | 3D: element centrelines and plate outlines on a non-plotting layer. |
| drawings2d | boolean |
| startStation | number | Chainage at the start of the deck, m. |
| separateSlabs | boolean | A composite section's deck slab as its own slab. |
| cutsAtSupports | boolean |
| max3dMegabytes | number | Skip the 3D file (and say so) if it would be larger than this. |
| skipWeightless | boolean | Leave out weightless (dummy) members; cables, piles and members named NoSW are kept. |
{
"type": "object",
"properties": {
"cuts": {
"type": "array",
"items": {
"type": "object",
"required": [
"at"
],
"properties": {
"at": {
"type": "number"
},
"kind": {
"enum": [
"cross",
"long",
"level"
]
},
"depth": {
"type": "number"
}
},
"additionalProperties": false
}
},
"name": {
"type": "string",
"description": "File / model name (default: the model's project name)."
},
"units": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"default": "mm",
"description": "Drawing unit (dimensions); levels and chainages are labelled in m (ft for imperial)."
},
"views": {
"type": "array",
"items": {
"enum": [
"plan",
"elevation",
"iso",
"cuts",
"sections"
]
},
"description": "Which 2D views (default all: plan, elevation, iso, cuts, sections)."
},
"hidden": {
"type": "boolean",
"default": true,
"description": "Hidden lines dashed in plan and elevation."
},
"labels": {
"type": "boolean",
"default": true,
"description": "Chainages, labels and dimensions."
},
"model3d": {
"type": "boolean",
"default": true,
"description": "Also write the 3D DXF."
},
"tendons": {
"type": "boolean",
"default": true,
"description": "Tendons drawn at their duct diameter."
},
"format3d": {
"enum": [
"R2000",
"R12"
],
"default": "R2000",
"description": "R12 is about half the size (Autodesk Viewer may show it empty)."
},
"joinDeck": {
"type": "boolean",
"default": true,
"description": "Join side-by-side girders' slab strips into one continuous deck."
},
"wireframe": {
"type": "boolean",
"default": false,
"description": "3D: element centrelines and plate outlines on a non-plotting layer."
},
"drawings2d": {
"type": "boolean",
"default": true
},
"startStation": {
"type": "number",
"default": 0,
"description": "Chainage at the start of the deck, m."
},
"separateSlabs": {
"type": "boolean",
"default": true,
"description": "A composite section's deck slab as its own slab."
},
"cutsAtSupports": {
"type": "boolean",
"default": false
},
"max3dMegabytes": {
"type": "number",
"default": 150,
"description": "Skip the 3D file (and say so) if it would be larger than this."
},
"skipWeightless": {
"type": "boolean",
"default": true,
"description": "Leave out weightless (dummy) members; cables, piles and members named NoSW are kept."
}
},
"additionalProperties": false
}| Construction stages as groups. |
| colours | boolean |
| tendons | boolean | Tendons drawn at their duct diameter. |
| analysis | boolean | Include the structural analysis model (nodes, supports, members, links). |
| 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). |
| joinDeck | boolean | Join side-by-side girders' slab strips into one continuous deck. |
| reactions | boolean | Support reactions for every analysed series (with analysis; needs an analysed model). |
| plateForces | boolean | With resultSeries: plate forces. |
| memberForces | boolean | With resultSeries: beam forces. |
| 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. |
| startStation | number | Chainage at the start of the deck, m. |
| displacements | boolean | With resultSeries: node displacements. |
| separateSlabs | boolean | A composite section's deck slab as its own slab. |
| 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…). |
| skipWeightless | boolean | Leave out weightless (dummy) members; cables, piles and members named NoSW are kept. |
| linearPlacement | boolean | IFC4.3 only: place members along the alignment (IfcLinearPlacement). |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "File / model name (default: the model's project name)."
},
"loads": {
"type": "boolean",
"default": true,
"description": "Load cases, self-weight, nodal/beam/pressure loads and combinations (with analysis)."
},
"georef": {
"type": "object",
"properties": {
"crs": {
"type": "string"
},
"scale": {
"type": "number"
},
"height": {
"type": "number"
},
"eastings": {
"type": "number"
},
"rotation": {
"type": "number"
},
"northings": {
"type": "number"
}
},
"description": "{crs (e.g. EPSG:27700), eastings, northings, height, rotation (deg), scale}: IfcMapConversion. Omitted = none.",
"additionalProperties": false
},
"groups": {
"type": "boolean",
"default": true
},
"schema": {
"enum": [
"IFC4",
"IFC4X3"
],
"default": "IFC4",
"description": "IFC4: Revit, Navisworks, Tekla, Solibri. IFC4X3: the bridge model (IfcBridge parts, bearings, alignment)."
},
"stages": {
"type": "boolean",
"default": true,
"description": "Construction stages as groups."
},
"colours": {
"type": "boolean",
"default": true
},
"tendons": {
"type": "boolean",
"default": true,
"description": "Tendons drawn at their duct diameter."
},
"analysis": {
"type": "boolean",
"default": true,
"description": "Include the structural analysis model (nodes, supports, members, links)."
},
"deformed": {
"type": "object",
"required": [
"series"
],
"properties": {
"scale": {
"type": "number"
},
"series": {
"type": "string"
}
},
"description": "{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).",
"additionalProperties": false
},
"joinDeck": {
"type": "boolean",
"default": true,
"description": "Join side-by-side girders' slab strips into one continuous deck."
},
"reactions": {
"type": "boolean",
"default": true,
"description": "Support reactions for every analysed series (with analysis; needs an analysed model)."
},
"plateForces": {
"type": "boolean",
"default": true,
"description": "With resultSeries: plate forces."
},
"memberForces": {
"type": "boolean",
"default": true,
"description": "With resultSeries: beam forces."
},
"resultSeries": {
"type": "array",
"items": {
"type": "string"
},
"description": "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."
},
"startStation": {
"type": "number",
"default": 0,
"description": "Chainage at the start of the deck, m."
},
"displacements": {
"type": "boolean",
"default": true,
"description": "With resultSeries: node displacements."
},
"separateSlabs": {
"type": "boolean",
"default": true,
"description": "A composite section's deck slab as its own slab."
},
"classification": {
"type": "object",
"description": "{name, edition, codes: {<role>: {code, title}}} e.g. Uniclass codes per role (girder, deck slab, pier stem, pier cap, abutment wall, pile, bearing, tendon…).",
"additionalProperties": true
},
"skipWeightless": {
"type": "boolean",
"default": true,
"description": "Leave out weightless (dummy) members; cables, piles and members named NoSW are kept."
},
"linearPlacement": {
"type": "boolean",
"default": false,
"description": "IFC4.3 only: place members along the alignment (IfcLinearPlacement)."
}
},
"additionalProperties": false
}| alphaMicro | number | Thermal coefficient ×1e-6 /°C (default 12). |
| phiCritDeg | number | Backfill φ'crit (default 32). |
| phiPeakDeg | number | Backfill φ'peak (default 35). |
| abutmentType | string | frame (default) or the plugin's other types. |
| surchargeKpa | number |
| hasWaterTable | boolean |
| phiInferiorDeg | number | null |
| phiSuperiorDeg | number | null |
| expansionLength | number | Length to the point of zero movement, m (default 60). |
| waterTableDepth | number |
| nAbutmentsSharing | number | Abutments sharing the movement (default 2). |
{
"type": "object",
"properties": {
"psi": {
"type": "number"
},
"tMax": {
"type": "number",
"description": "Max effective bridge temperature, °C (default 37)."
},
"tMin": {
"type": "number",
"description": "Min effective bridge temperature, °C (default -2)."
},
"gammaQ": {
"type": "number"
},
"skewDeg": {
"type": "number"
},
"abutment": {
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "Structure group holding the abutment wall plates."
},
"loadedWidth": {
"type": "number",
"description": "Wall width loaded, m (default 10)."
},
"foundationType": {
"enum": [
"spread_footing",
"bank_pad",
"single_row_piles",
"multi_row_piles",
"embedded_wall"
],
"description": "Decides the route: footings/bank pads → Route A; piles/embedded walls → Annex A (SSI)."
},
"retainedHeight": {
"type": "number",
"description": "H, m (default 6)."
}
},
"additionalProperties": false
},
"gammaSat": {
"type": "number"
},
"override": {
"type": [
"object",
"null"
],
"description": "Engineer's route override {route, engineer, reason} — only with the user's justification."
},
"gammaBulk": {
"type": "number"
},
"alphaMicro": {
"type": "number",
"description": "Thermal coefficient ×1e-6 /°C (default 12)."
},
"phiCritDeg": {
"type": "number",
"description": "Backfill φ'crit (default 32)."
},
"phiPeakDeg": {
"type": "number",
"description": "Backfill φ'peak (default 35)."
},
"abutmentType": {
"type": "string",
"description": "frame (default) or the plugin's other types."
},
"surchargeKpa": {
"type": "number"
},
"hasWaterTable": {
"type": "boolean"
},
"phiInferiorDeg": {
"type": [
"number",
"null"
]
},
"phiSuperiorDeg": {
"type": [
"number",
"null"
]
},
"expansionLength": {
"type": "number",
"description": "Length to the point of zero movement, m (default 60)."
},
"waterTableDepth": {
"type": "number"
},
"nAbutmentsSharing": {
"type": "number",
"description": "Abutments sharing the movement (default 2)."
}
},
"additionalProperties": false
}| array |
| gammaBulk | number |
| alphaMicro | number | Thermal coefficient ×1e-6 /°C (default 12). |
| phiCritDeg | number | Backfill φ'crit (default 32). |
| phiPeakDeg | number | Backfill φ'peak (default 35). |
| abutmentType | string | frame (default) or the plugin's other types. |
| surchargeKpa | number |
| hasWaterTable | boolean |
| phiInferiorDeg | number | null |
| phiSuperiorDeg | number | null |
| confirmPlanHash | string |
| expansionLength | number | Length to the point of zero movement, m (default 60). |
| waterTableDepth | number |
| nAbutmentsSharing | number | Abutments sharing the movement (default 2). |
{
"type": "object",
"required": [
"abutments"
],
"properties": {
"psi": {
"type": "number"
},
"tMax": {
"type": "number",
"description": "Max effective bridge temperature, °C (default 37)."
},
"tMin": {
"type": "number",
"description": "Min effective bridge temperature, °C (default -2)."
},
"apply": {
"type": "boolean",
"default": false
},
"gammaQ": {
"type": "number"
},
"skewDeg": {
"type": "number"
},
"stageId": {
"type": [
"integer",
"null"
],
"description": "Construction stage id to activate the four cases in."
},
"gammaSat": {
"type": "number"
},
"override": {
"type": [
"object",
"null"
],
"description": "Engineer's route override {route, engineer, reason} — only with the user's justification."
},
"abutments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "Structure group holding the abutment wall plates."
},
"loadedWidth": {
"type": "number",
"description": "Wall width loaded, m (default 10)."
},
"foundationType": {
"enum": [
"spread_footing",
"bank_pad",
"single_row_piles",
"multi_row_piles",
"embedded_wall"
],
"description": "Decides the route: footings/bank pads → Route A; piles/embedded walls → Annex A (SSI)."
},
"retainedHeight": {
"type": "number",
"description": "H, m (default 6)."
}
},
"additionalProperties": false
},
"maxItems": 2
},
"gammaBulk": {
"type": "number"
},
"alphaMicro": {
"type": "number",
"description": "Thermal coefficient ×1e-6 /°C (default 12)."
},
"phiCritDeg": {
"type": "number",
"description": "Backfill φ'crit (default 32)."
},
"phiPeakDeg": {
"type": "number",
"description": "Backfill φ'peak (default 35)."
},
"abutmentType": {
"type": "string",
"description": "frame (default) or the plugin's other types."
},
"surchargeKpa": {
"type": "number"
},
"hasWaterTable": {
"type": "boolean"
},
"phiInferiorDeg": {
"type": [
"number",
"null"
]
},
"phiSuperiorDeg": {
"type": [
"number",
"null"
]
},
"confirmPlanHash": {
"type": "string"
},
"expansionLength": {
"type": "number",
"description": "Length to the point of zero movement, m (default 60)."
},
"waterTableDepth": {
"type": "number"
},
"nAbutmentsSharing": {
"type": "number",
"description": "Abutments sharing the movement (default 2)."
}
},
"additionalProperties": false
}| abutments* |
| array |
| gammaBulk | number |
| alphaMicro | number | Thermal coefficient ×1e-6 /°C (default 12). |
| phiCritDeg | number | Backfill φ'crit (default 32). |
| phiPeakDeg | number | Backfill φ'peak (default 35). |
| abutmentType | string | frame (default) or the plugin's other types. |
| surchargeKpa | number |
| hasWaterTable | boolean |
| phiInferiorDeg | number | null |
| phiSuperiorDeg | number | null |
| expansionLength | number | Length to the point of zero movement, m (default 60). |
| waterTableDepth | number |
| nAbutmentsSharing | number | Abutments sharing the movement (default 2). |
{
"type": "object",
"required": [
"abutments"
],
"properties": {
"psi": {
"type": "number"
},
"ssi": {
"type": "object",
"description": "Annex A settings, as the plugin's SSI tab: deckGroup (required), stageId, suspendGroups, piles [{pileGroup, pileTributaryWidth, excavationLevel}], movementConvention, foundationC, groundPhi, groundGamma, mode (multilinear|linear), onLinearBehaviour, tolerance, maxIterations, relaxation, wallRigidAtBase, pilePlaneStrainConfirmed.",
"additionalProperties": true
},
"tMax": {
"type": "number",
"description": "Max effective bridge temperature, °C (default 37)."
},
"tMin": {
"type": "number",
"description": "Min effective bridge temperature, °C (default -2)."
},
"gammaQ": {
"type": "number"
},
"skewDeg": {
"type": "number"
},
"gammaSat": {
"type": "number"
},
"override": {
"type": [
"object",
"null"
],
"description": "Engineer's route override {route, engineer, reason} — only with the user's justification."
},
"abutments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "Structure group holding the abutment wall plates."
},
"loadedWidth": {
"type": "number",
"description": "Wall width loaded, m (default 10)."
},
"foundationType": {
"enum": [
"spread_footing",
"bank_pad",
"single_row_piles",
"multi_row_piles",
"embedded_wall"
],
"description": "Decides the route: footings/bank pads → Route A; piles/embedded walls → Annex A (SSI)."
},
"retainedHeight": {
"type": "number",
"description": "H, m (default 6)."
}
},
"additionalProperties": false
},
"maxItems": 2
},
"gammaBulk": {
"type": "number"
},
"alphaMicro": {
"type": "number",
"description": "Thermal coefficient ×1e-6 /°C (default 12)."
},
"phiCritDeg": {
"type": "number",
"description": "Backfill φ'crit (default 32)."
},
"phiPeakDeg": {
"type": "number",
"description": "Backfill φ'peak (default 35)."
},
"abutmentType": {
"type": "string",
"description": "frame (default) or the plugin's other types."
},
"surchargeKpa": {
"type": "number"
},
"hasWaterTable": {
"type": "boolean"
},
"phiInferiorDeg": {
"type": [
"number",
"null"
]
},
"phiSuperiorDeg": {
"type": [
"number",
"null"
]
},
"expansionLength": {
"type": "number",
"description": "Length to the point of zero movement, m (default 60)."
},
"waterTableDepth": {
"type": "number"
},
"nAbutmentsSharing": {
"type": "number",
"description": "Abutments sharing the movement (default 2)."
}
},
"additionalProperties": false
}| object | null |
| Engineer's route override {route, engineer, reason} — only with the user's justification. |
| abutments* | array |
| gammaBulk | number |
| alphaMicro | number | Thermal coefficient ×1e-6 /°C (default 12). |
| phiCritDeg | number | Backfill φ'crit (default 32). |
| phiPeakDeg | number | Backfill φ'peak (default 35). |
| abutmentType | string | frame (default) or the plugin's other types. |
| surchargeKpa | number |
| hasWaterTable | boolean |
| phiInferiorDeg | number | null |
| phiSuperiorDeg | number | null |
| confirmPlanHash | string |
| expansionLength | number | Length to the point of zero movement, m (default 60). |
| waterTableDepth | number |
| nAbutmentsSharing | number | Abutments sharing the movement (default 2). |
{
"type": "object",
"required": [
"abutments"
],
"properties": {
"psi": {
"type": "number"
},
"ssi": {
"type": "object",
"description": "Annex A settings, as the plugin's SSI tab: deckGroup (required), stageId, suspendGroups, piles [{pileGroup, pileTributaryWidth, excavationLevel}], movementConvention, foundationC, groundPhi, groundGamma, mode (multilinear|linear), onLinearBehaviour, tolerance, maxIterations, relaxation, wallRigidAtBase, pilePlaneStrainConfirmed.",
"additionalProperties": true
},
"tMax": {
"type": "number",
"description": "Max effective bridge temperature, °C (default 37)."
},
"tMin": {
"type": "number",
"description": "Min effective bridge temperature, °C (default -2)."
},
"apply": {
"type": "boolean",
"default": false
},
"gammaQ": {
"type": "number"
},
"skewDeg": {
"type": "number"
},
"gammaSat": {
"type": "number"
},
"override": {
"type": [
"object",
"null"
],
"description": "Engineer's route override {route, engineer, reason} — only with the user's justification."
},
"abutments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "Structure group holding the abutment wall plates."
},
"loadedWidth": {
"type": "number",
"description": "Wall width loaded, m (default 10)."
},
"foundationType": {
"enum": [
"spread_footing",
"bank_pad",
"single_row_piles",
"multi_row_piles",
"embedded_wall"
],
"description": "Decides the route: footings/bank pads → Route A; piles/embedded walls → Annex A (SSI)."
},
"retainedHeight": {
"type": "number",
"description": "H, m (default 6)."
}
},
"additionalProperties": false
},
"maxItems": 2
},
"gammaBulk": {
"type": "number"
},
"alphaMicro": {
"type": "number",
"description": "Thermal coefficient ×1e-6 /°C (default 12)."
},
"phiCritDeg": {
"type": "number",
"description": "Backfill φ'crit (default 32)."
},
"phiPeakDeg": {
"type": "number",
"description": "Backfill φ'peak (default 35)."
},
"abutmentType": {
"type": "string",
"description": "frame (default) or the plugin's other types."
},
"surchargeKpa": {
"type": "number"
},
"hasWaterTable": {
"type": "boolean"
},
"phiInferiorDeg": {
"type": [
"number",
"null"
]
},
"phiSuperiorDeg": {
"type": [
"number",
"null"
]
},
"confirmPlanHash": {
"type": "string"
},
"expansionLength": {
"type": "number",
"description": "Length to the point of zero movement, m (default 60)."
},
"waterTableDepth": {
"type": "number"
},
"nAbutmentsSharing": {
"type": "number",
"description": "Abutments sharing the movement (default 2)."
}
},
"additionalProperties": false
}| Model tables: exact column names to keep (preview first to see them). |
| records | object | Model tables: which record ids (filtered after the read). |
| argument | object | For custom-table: the full POST /post/TABLE Argument object. |
| decimals | integer | Default 6. |
| entities | object |
| loadCases | array | e.g. ["DL(ST)", "ULS(CB)", "ENV(CB:max)", "LM1(MV:max)"]. Omit for every case. |
| sheetName | string | Excel sheet name (≤ 31 characters). |
| tableType | string | For result-any: the MIDAS TABLE_TYPE. |
| 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. |
| nodeCenter | boolean | Plate tables: include the element centre. |
| stageSteps | array | With constructionStage: e.g. ["CS1:001(first)", "CS3:002(last)"]. Omit for every saved step. |
| nodeCorners | boolean | Plate tables: include the corner nodes (default true). |
| averageNodal | boolean |
| numberFormat | string | Default Scientific. |
| extraArgument | object | For 'all columns' tables: more POST /post/TABLE Argument keys (e.g. LOAD_CASE_NAMES, NODE_ELEMS, OPT_CS). |
| userTableName | string | For user-defined-table-*: the saved Dynamic Report Table name. |
| sectionPositions | array | Beam stress detail: e.g. ["Maximum"] or stress point numbers. |
| constructionStage | boolean | Results of the construction stage analysis (adds Stage and Step columns). |
| displacementOption | string | Displacement tables in construction stages. |
{
"type": "object",
"required": [
"table"
],
"properties": {
"rows": {
"type": "integer",
"default": 20,
"maximum": 200,
"minimum": 1
},
"dbKey": {
"type": "string",
"description": "For db-custom: any /db/ key (e.g. MVHL, TDNA)."
},
"parts": {
"type": "array",
"items": {
"enum": [
"PartI",
"Part1/4",
"Part2/4",
"Part3/4",
"PartJ"
],
"type": "string"
},
"description": "Beam tables: stations along each element (default PartI, PartJ)."
},
"table": {
"type": "string",
"description": "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."
},
"title": {
"type": "string"
},
"units": {
"type": "object",
"properties": {
"force": {
"enum": [
"N",
"kN",
"kgf",
"tonf",
"lbf",
"kip"
],
"type": "string"
},
"distance": {
"enum": [
"mm",
"cm",
"m",
"in",
"ft"
],
"type": "string"
}
},
"description": "Units MIDAS converts the results to (default kN, m).",
"additionalProperties": false
},
"columns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Model tables: exact column names to keep (preview first to see them)."
},
"records": {
"type": "object",
"properties": {
"mode": {
"enum": [
"all",
"ids",
"range"
],
"type": "string"
},
"value": {
"type": "string"
}
},
"description": "Model tables: which record ids (filtered after the read).",
"additionalProperties": false
},
"argument": {
"type": "object",
"description": "For custom-table: the full POST /post/TABLE Argument object."
},
"decimals": {
"type": "integer",
"maximum": 15,
"minimum": 0,
"description": "Default 6."
},
"entities": {
"type": "object",
"properties": {
"mode": {
"enum": [
"all",
"ids",
"range",
"group"
],
"type": "string",
"default": "all"
},
"value": {
"type": "string",
"description": "ids: \"1-40, 52\"; range: \"1 to 250\"; group: the structure group name."
}
},
"additionalProperties": false
},
"loadCases": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. [\"DL(ST)\", \"ULS(CB)\", \"ENV(CB:max)\", \"LM1(MV:max)\"]. Omit for every case."
},
"sheetName": {
"type": "string",
"description": "Excel sheet name (≤ 31 characters)."
},
"tableType": {
"type": "string",
"description": "For result-any: the MIDAS TABLE_TYPE."
},
"components": {
"type": "array",
"items": {
"type": "string"
},
"description": "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."
},
"nodeCenter": {
"type": "boolean",
"description": "Plate tables: include the element centre."
},
"stageSteps": {
"type": "array",
"items": {
"type": "string"
},
"description": "With constructionStage: e.g. [\"CS1:001(first)\", \"CS3:002(last)\"]. Omit for every saved step."
},
"nodeCorners": {
"type": "boolean",
"description": "Plate tables: include the corner nodes (default true)."
},
"averageNodal": {
"type": "boolean"
},
"numberFormat": {
"enum": [
"Default",
"Fixed",
"Scientific",
"General"
],
"type": "string",
"description": "Default Scientific."
},
"extraArgument": {
"type": "object",
"description": "For 'all columns' tables: more POST /post/TABLE Argument keys (e.g. LOAD_CASE_NAMES, NODE_ELEMS, OPT_CS)."
},
"userTableName": {
"type": "string",
"description": "For user-defined-table-*: the saved Dynamic Report Table name."
},
"sectionPositions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Beam stress detail: e.g. [\"Maximum\"] or stress point numbers."
},
"constructionStage": {
"type": "boolean",
"description": "Results of the construction stage analysis (adds Stage and Step columns)."
},
"displacementOption": {
"enum": [
"Accumulative",
"Current",
"Real"
],
"type": "string",
"description": "Displacement tables in construction stages."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"section"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"description": "Section id; default = next free id in the model."
},
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"section": {
"type": "object",
"required": [
"parts"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"enum": [
"general",
"psc"
],
"default": "general",
"description": "One part: general = VALUE/GEN; psc = PSC/VALU (for prestressed concrete with PSC design). Two or more parts always write COMPOSITE-GEN."
},
"merge": {
"type": "boolean",
"default": true,
"description": "Merge touching/overlapping regions of the same part."
},
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"regions": {
"type": "array",
"items": {
"type": "object",
"required": [
"outer"
],
"properties": {
"holes": {
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
{
"type": "object",
"required": [
"y",
"z"
],
"properties": {
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"bulge": {
"type": "number",
"description": "The edge from this vertex to the next is an arc: tan(sweep/4), positive = anticlockwise (DXF convention). 1 = semicircle."
},
"fillet": {
"type": "number",
"minimum": 0,
"description": "Round this corner with this radius."
}
},
"additionalProperties": false
}
]
},
"minItems": 3,
"description": "Vertices in order round the outline (either direction); closed automatically."
},
{
"type": "object",
"required": [
"circle"
],
"properties": {
"circle": {
"type": "object",
"required": [
"centre"
],
"properties": {
"centre": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"radius": {
"type": "number"
},
"diameter": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
},
"description": "Voids inside this outer outline (box cells, ducts)."
},
"outer": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
{
"type": "object",
"required": [
"y",
"z"
],
"properties": {
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"bulge": {
"type": "number",
"description": "The edge from this vertex to the next is an arc: tan(sweep/4), positive = anticlockwise (DXF convention). 1 = semicircle."
},
"fillet": {
"type": "number",
"minimum": 0,
"description": "Round this corner with this radius."
}
},
"additionalProperties": false
}
]
},
"minItems": 3,
"description": "Vertices in order round the outline (either direction); closed automatically."
},
{
"type": "object",
"required": [
"circle"
],
"properties": {
"circle": {
"type": "object",
"required": [
"centre"
],
"properties": {
"centre": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"radius": {
"type": "number"
},
"diameter": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
"description": "Closed areas of this material. Regions of one part that touch are merged (Union)."
},
"material": {
"anyOf": [
{
"type": "string",
"description": "A grade: concrete \"C40/50\" (EN 1992 Ecm, ν 0.2) or steel \"S355\" (210 GPa, ν 0.3)."
},
{
"type": "object",
"required": [
"E"
],
"properties": {
"E": {
"type": "number"
},
"nu": {
"type": "number",
"default": 0.2
},
"unit": {
"enum": [
"MPa",
"GPa",
"kN/m2"
],
"default": "MPa"
}
},
"additionalProperties": false
}
]
},
"template": {
"type": "object",
"required": [
"kind"
],
"properties": {
"B": {
"type": "number"
},
"H": {
"type": "number"
},
"Bb": {
"type": "number"
},
"Bs": {
"type": "number"
},
"Bt": {
"type": "number"
},
"Bw": {
"type": "number"
},
"at": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2,
"description": "Where the template's soffit centre goes, [y, z]."
},
"tb": {
"type": "number"
},
"tc": {
"type": "number"
},
"tr": {
"type": "number"
},
"ts": {
"type": "number"
},
"tw": {
"type": "number"
},
"hbh": {
"type": "number"
},
"hbw": {
"type": "number"
},
"hth": {
"type": "number"
},
"htw": {
"type": "number"
},
"tfb": {
"type": "number"
},
"tft": {
"type": "number"
},
"kind": {
"enum": [
"i_girder",
"box_girder"
]
},
"cells": {
"enum": [
1,
2,
3
]
}
},
"description": "A Section Designer template instead of regions; lengths in the section's units. Soffit on z = 0 and centreline on y = 0, moved by at. i_girder: H depth, tw web, Bt/tft top flange width/thickness, Bb/tfb bottom flange, htw/hth top haunch width (beyond the web face)/height, hbw/hbh bottom haunch. box_girder: cells 1–3, B deck width, Bw outer width across the webs at the top (under the cantilever roots), Bs soffit width, H depth, ts top slab, tb bottom slab, tw web thickness (horizontal), tc/tr cantilever thickness at tip/root, htw/hth and hbw/hbh cell haunches (top and bottom corners). Haunches default to 0.",
"additionalProperties": false
},
"reference": {
"type": "boolean",
"description": "Composite only: the material every other part is transformed to (one part; default part 1)."
},
"densityRatio": {
"type": "number",
"default": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 6,
"minItems": 1,
"description": "One part per material, in CONSTRUCTION ORDER (part 1 = first in place, e.g. the steel or precast girder; then the deck slab). Each composite stage i = parts 1…i."
},
"units": {
"enum": [
"mm",
"cm",
"m"
],
"default": "mm",
"description": "Units of every coordinate, radius and template dimension."
},
"offset": {
"enum": [
"LT",
"CT",
"RT",
"LC",
"CC",
"RC",
"LB",
"CB",
"RB"
],
"default": "CC",
"description": "CIVIL offset point (CC = centroid)."
},
"offsetFrom": {
"enum": [
"centroid",
"extents"
],
"default": "centroid"
},
"warpingEffect": {
"type": "boolean",
"default": false,
"description": "CIVIL's 'Consider warping effect': also computes and writes the warping constant IW, the shear centre (YS_YC, ZS_ZC = centroid − shear centre), IP and the warping function / torsion shear coefficients at the stress points (W, CXY, CXZ). Single-material sections only; use it for thin-walled open steel sections."
},
"shearDeformation": {
"type": "boolean",
"default": true
}
},
"description": "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 frame is applied on write.",
"additionalProperties": false
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
},
"replaceExisting": {
"type": "boolean",
"default": false,
"description": "DESTRUCTIVE: overwrite the section already at id (elements using it change stiffness). Only with the user's agreement."
}
},
"additionalProperties": false
}| Create a default C30-like material and rectangular sections/thickness when the ids are not in the model. |
| autoTransverseSections | boolean | One transverse section per measured tributary width (beam decks). |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"geometry": {
"type": "object",
"properties": {
"spans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"plan": {
"enum": [
"straight",
"left",
"right"
]
},
"length": {
"type": "number"
},
"radius": {
"type": "number"
}
}
},
"description": "Multi-span: one row per span."
},
"originX": {
"type": "number"
},
"originY": {
"type": "number"
},
"supports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"gap": {
"type": "number"
},
"skew": {
"type": "number"
},
"bearing": {
"type": "number"
}
}
},
"description": "Multi-span: one row per support line (spans + 1): skew, joint gap a, bearing offset b."
},
"crossfall": {
"type": "number",
"description": "%"
},
"deckWidth": {
"type": "number"
},
"elevation": {
"type": "number"
},
"multiSpan": {
"type": "boolean"
},
"skewAngle": {
"type": "number",
"description": "Skew of the start support from square, degrees (±60)."
},
"materialId": {
"type": "integer"
},
"spanLength": {
"type": "number",
"description": "Span along the girders (single span)."
},
"curveRadius": {
"type": "number"
},
"elementType": {
"enum": [
"beam",
"plate"
],
"description": "beam = grillage of girders and cross beams; plate = plate-mesh deck."
},
"girderCount": {
"type": "integer",
"minimum": 2
},
"gradientEnd": {
"type": "number",
"description": "%"
},
"orientation": {
"enum": [
"skew",
"perpendicular"
],
"description": "Cross beams parallel to the supports, or square to the girders."
},
"profileType": {
"enum": [
"level",
"gradient",
"curve"
]
},
"startNodeId": {
"type": "integer"
},
"thicknessId": {
"type": "integer"
},
"curveEnabled": {
"type": "boolean"
},
"endSkewAngle": {
"type": "number",
"description": "Skew of the end support if different (a trapezium deck)."
},
"crossfallType": {
"enum": [
"none",
"one-way",
"two-way",
"camber"
]
},
"gradientStart": {
"type": "number",
"description": "%"
},
"levelsEnabled": {
"type": "boolean",
"description": "Turn on crossfall and vertical profile."
},
"longSectionId": {
"type": "integer"
},
"curveDirection": {
"enum": [
"left",
"right"
]
},
"curveReference": {
"enum": [
"centreline",
"girder"
]
},
"girderSpacings": {
"type": "array",
"items": {
"type": "number"
},
"description": "Unequal girder spacings, edge to edge; sets the count and the width."
},
"plateThickness": {
"type": "number"
},
"startElementId": {
"type": "integer"
},
"transSectionId": {
"type": "integer"
},
"curveGirderSetOut": {
"enum": [
"concentric",
"fitted",
"translated"
]
},
"transverseSpacing": {
"type": "number",
"description": "Cross-beam (or plate) spacing along the span."
},
"curveReferenceGirder": {
"type": "integer"
}
},
"description": "Deck inputs, named as in the plugin. Anything omitted takes the plugin form's default. Lengths in metres, angles in degrees.",
"additionalProperties": true
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
},
"replaceExisting": {
"type": "boolean",
"default": false,
"description": "DESTRUCTIVE: delete all nodes, elements, sections, thicknesses, materials and structure groups first. Only with the user's explicit agreement."
},
"structureGroups": {
"type": "boolean",
"default": true
},
"allowDefaultProperties": {
"type": "boolean",
"default": true,
"description": "Create a default C30-like material and rectangular sections/thickness when the ids are not in the model."
},
"autoTransverseSections": {
"type": "boolean",
"default": true,
"description": "One transverse section per measured tributary width (beam decks)."
}
},
"additionalProperties": false
}| 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 the bar centroid) and steel [tx, ta, bx, ba] kN/m. |
| thetaDeg | number | Or: the direction as an angle in the plane from slab_survey's suggestedReference (default 0). |
| averaging | boolean | Average nodal results over the plates meeting at each node (in the reinforcement frame). Off by default: averaging hides peaks. |
| reference | array | Reinforcement x direction as a global vector in the plane of the plates. |
| capacities | object | Moment capacities typed directly, instead of bars. |
| centreOnly | boolean | Assess element centres only. |
| maxElements | integer | How many of the worst elements to list (default 25). |
| orientation | integer | Orientation group index from slab_survey (default 0, the largest). |
{
"type": "object",
"required": [
"cases"
],
"properties": {
"bars": {
"type": "object",
"required": [
"thickness_mm",
"fck"
],
"properties": {
"fck": {
"type": "number",
"description": "MPa"
},
"fyk": {
"type": "number",
"description": "MPa (default 500)"
},
"top": {
"type": "object",
"required": [
"layers"
],
"properties": {
"layers": {
"type": "array",
"items": {
"type": "object",
"required": [
"dia",
"spacing"
],
"properties": {
"dia": {
"type": "number",
"description": "bar diameter, mm",
"exclusiveMinimum": 0
},
"angle": {
"type": "number",
"description": "bar direction, degrees from the reinforcement x direction (0 or alphaDeg)"
},
"outer": {
"type": "boolean",
"description": "the outer layer of its face"
},
"spacing": {
"type": "number",
"description": "mm",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
},
"cover_mm": {
"type": "number",
"description": "nominal cover to the bar face, mm"
}
},
"description": "One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.",
"additionalProperties": false
},
"bottom": {
"type": "object",
"required": [
"layers"
],
"properties": {
"layers": {
"type": "array",
"items": {
"type": "object",
"required": [
"dia",
"spacing"
],
"properties": {
"dia": {
"type": "number",
"description": "bar diameter, mm",
"exclusiveMinimum": 0
},
"angle": {
"type": "number",
"description": "bar direction, degrees from the reinforcement x direction (0 or alphaDeg)"
},
"outer": {
"type": "boolean",
"description": "the outer layer of its face"
},
"spacing": {
"type": "number",
"description": "mm",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
},
"cover_mm": {
"type": "number",
"description": "nominal cover to the bar face, mm"
}
},
"description": "One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.",
"additionalProperties": false
},
"gamma_c": {
"type": "number"
},
"gamma_s": {
"type": "number"
},
"alpha_cc": {
"type": "number"
},
"thickness_mm": {
"type": "number"
}
},
"description": "The bar arrangement (preferred): drives the Denton/Wood-Armer capacities, the Annex LL steel forces and covers, and CS 455.",
"additionalProperties": false
},
"cases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Load cases / combinations by name (slab_survey lists them)."
},
"cs455": {
"type": "object",
"properties": {
"fcu": {
"type": "number"
},
"gamma_mc": {
"type": "number"
},
"gamma_ms": {
"type": "number"
}
},
"description": "CS 455 material inputs (with bars).",
"additionalProperties": false
},
"group": {
"type": "string",
"description": "Structure group to assess (default: every plate)."
},
"methods": {
"type": "array",
"items": {
"enum": [
"denton",
"woodarmer",
"sandwich",
"annexll",
"cs455"
]
},
"description": "Routes: denton (needs capacities), woodarmer, sandwich (Clark–Nielsen), annexll (EN 1992-2 Annex LL), cs455 (needs bars). Default denton + woodarmer."
},
"alphaDeg": {
"type": "number",
"description": "Angle of the second bar direction from the first, degrees (default 90 = orthogonal)."
},
"sandwich": {
"type": "object",
"properties": {
"fck": {
"type": "number"
},
"shear": {
"type": "object",
"properties": {
"d": {
"type": "number"
},
"ndp": {
"type": "string"
},
"fywd": {
"type": "number"
},
"rho_l": {
"type": "number"
},
"rho_x": {
"type": "number"
},
"rho_y": {
"type": "number"
},
"anchored": {
"type": "boolean"
},
"asw_per_s": {
"type": "number"
}
},
"additionalProperties": false
},
"steel": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 4,
"minItems": 4
},
"gamma_c": {
"type": "number"
},
"cot_theta": {
"type": [
"number",
"null"
]
},
"cover_top": {
"type": "number"
},
"thickness": {
"type": "number"
},
"cover_bottom": {
"type": "number"
},
"layer_thicknesses": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
}
},
"description": "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 the bar centroid) and steel [tx, ta, bx, ba] kN/m.",
"additionalProperties": false
},
"thetaDeg": {
"type": "number",
"description": "Or: the direction as an angle in the plane from slab_survey's suggestedReference (default 0)."
},
"averaging": {
"type": "boolean",
"description": "Average nodal results over the plates meeting at each node (in the reinforcement frame). Off by default: averaging hides peaks."
},
"reference": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 3,
"minItems": 3,
"description": "Reinforcement x direction as a global vector in the plane of the plates."
},
"capacities": {
"type": "object",
"properties": {
"top": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"description": "[[angle_deg, moment capacity kNm/m], ...]"
},
"bottom": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"description": "[[angle_deg, moment capacity kNm/m], ...]"
}
},
"description": "Moment capacities typed directly, instead of bars.",
"additionalProperties": false
},
"centreOnly": {
"type": "boolean",
"description": "Assess element centres only."
},
"maxElements": {
"type": "integer",
"description": "How many of the worst elements to list (default 25)."
},
"orientation": {
"type": "integer",
"description": "Orientation group index from slab_survey (default 0, the largest)."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"thickness_mm",
"fck"
],
"properties": {
"fck": {
"type": "number",
"description": "MPa"
},
"fyk": {
"type": "number",
"description": "MPa (default 500)"
},
"top": {
"type": "object",
"required": [
"layers"
],
"properties": {
"layers": {
"type": "array",
"items": {
"type": "object",
"required": [
"dia",
"spacing"
],
"properties": {
"dia": {
"type": "number",
"description": "bar diameter, mm",
"exclusiveMinimum": 0
},
"angle": {
"type": "number",
"description": "bar direction, degrees from the reinforcement x direction (0 or alphaDeg)"
},
"outer": {
"type": "boolean",
"description": "the outer layer of its face"
},
"spacing": {
"type": "number",
"description": "mm",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
},
"cover_mm": {
"type": "number",
"description": "nominal cover to the bar face, mm"
}
},
"description": "One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.",
"additionalProperties": false
},
"bottom": {
"type": "object",
"required": [
"layers"
],
"properties": {
"layers": {
"type": "array",
"items": {
"type": "object",
"required": [
"dia",
"spacing"
],
"properties": {
"dia": {
"type": "number",
"description": "bar diameter, mm",
"exclusiveMinimum": 0
},
"angle": {
"type": "number",
"description": "bar direction, degrees from the reinforcement x direction (0 or alphaDeg)"
},
"outer": {
"type": "boolean",
"description": "the outer layer of its face"
},
"spacing": {
"type": "number",
"description": "mm",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
},
"cover_mm": {
"type": "number",
"description": "nominal cover to the bar face, mm"
}
},
"description": "One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.",
"additionalProperties": false
},
"gamma_c": {
"type": "number"
},
"gamma_s": {
"type": "number"
},
"alpha_cc": {
"type": "number"
},
"thickness_mm": {
"type": "number"
}
},
"description": "The bar arrangement (preferred): drives the Denton/Wood-Armer capacities, the Annex LL steel forces and covers, and CS 455.",
"additionalProperties": false
}| alphaDeg |
| number |
| Angle of the second bar direction from the first, degrees (default 90 = orthogonal). |
| position | string | integer | Node number or 'Cent' (default: governing). |
| 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 the bar centroid) and steel [tx, ta, bx, ba] kN/m. |
| thetaDeg | number | Or: the direction as an angle in the plane from slab_survey's suggestedReference (default 0). |
| averaging | boolean | Average nodal results over the plates meeting at each node (in the reinforcement frame). Off by default: averaging hides peaks. |
| reference | array | Reinforcement x direction as a global vector in the plane of the plates. |
| capacities | object | Moment capacities typed directly, instead of bars. |
| centreOnly | boolean | Assess element centres only. |
| maxElements | integer | Accepted (slab_assess arguments can be reused) and ignored. |
| orientation | integer | Orientation group index from slab_survey (default 0, the largest). |
{
"type": "object",
"required": [
"cases",
"element"
],
"properties": {
"bars": {
"type": "object",
"required": [
"thickness_mm",
"fck"
],
"properties": {
"fck": {
"type": "number",
"description": "MPa"
},
"fyk": {
"type": "number",
"description": "MPa (default 500)"
},
"top": {
"type": "object",
"required": [
"layers"
],
"properties": {
"layers": {
"type": "array",
"items": {
"type": "object",
"required": [
"dia",
"spacing"
],
"properties": {
"dia": {
"type": "number",
"description": "bar diameter, mm",
"exclusiveMinimum": 0
},
"angle": {
"type": "number",
"description": "bar direction, degrees from the reinforcement x direction (0 or alphaDeg)"
},
"outer": {
"type": "boolean",
"description": "the outer layer of its face"
},
"spacing": {
"type": "number",
"description": "mm",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
},
"cover_mm": {
"type": "number",
"description": "nominal cover to the bar face, mm"
}
},
"description": "One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.",
"additionalProperties": false
},
"bottom": {
"type": "object",
"required": [
"layers"
],
"properties": {
"layers": {
"type": "array",
"items": {
"type": "object",
"required": [
"dia",
"spacing"
],
"properties": {
"dia": {
"type": "number",
"description": "bar diameter, mm",
"exclusiveMinimum": 0
},
"angle": {
"type": "number",
"description": "bar direction, degrees from the reinforcement x direction (0 or alphaDeg)"
},
"outer": {
"type": "boolean",
"description": "the outer layer of its face"
},
"spacing": {
"type": "number",
"description": "mm",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
},
"cover_mm": {
"type": "number",
"description": "nominal cover to the bar face, mm"
}
},
"description": "One face: {cover_mm, layers: [{dia, spacing, angle, outer}, ...]} — one layer per bar direction, the outer one marked outer: true.",
"additionalProperties": false
},
"gamma_c": {
"type": "number"
},
"gamma_s": {
"type": "number"
},
"alpha_cc": {
"type": "number"
},
"thickness_mm": {
"type": "number"
}
},
"description": "The bar arrangement (preferred): drives the Denton/Wood-Armer capacities, the Annex LL steel forces and covers, and CS 455.",
"additionalProperties": false
},
"case": {
"type": "string",
"description": "Only this case (default: the element's governing one among cases)."
},
"cases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Load cases / combinations by name (slab_survey lists them)."
},
"cs455": {
"type": "object",
"properties": {
"fcu": {
"type": "number"
},
"gamma_mc": {
"type": "number"
},
"gamma_ms": {
"type": "number"
}
},
"description": "CS 455 material inputs (with bars).",
"additionalProperties": false
},
"group": {
"type": "string",
"description": "Structure group to assess (default: every plate)."
},
"element": {
"type": "integer"
},
"methods": {
"type": "array",
"items": {
"enum": [
"denton",
"woodarmer",
"sandwich",
"annexll",
"cs455"
]
},
"description": "Routes: denton (needs capacities), woodarmer, sandwich (Clark–Nielsen), annexll (EN 1992-2 Annex LL), cs455 (needs bars). Default denton + woodarmer."
},
"alphaDeg": {
"type": "number",
"description": "Angle of the second bar direction from the first, degrees (default 90 = orthogonal)."
},
"position": {
"type": [
"string",
"integer"
],
"description": "Node number or 'Cent' (default: governing)."
},
"sandwich": {
"type": "object",
"properties": {
"fck": {
"type": "number"
},
"shear": {
"type": "object",
"properties": {
"d": {
"type": "number"
},
"ndp": {
"type": "string"
},
"fywd": {
"type": "number"
},
"rho_l": {
"type": "number"
},
"rho_x": {
"type": "number"
},
"rho_y": {
"type": "number"
},
"anchored": {
"type": "boolean"
},
"asw_per_s": {
"type": "number"
}
},
"additionalProperties": false
},
"steel": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 4,
"minItems": 4
},
"gamma_c": {
"type": "number"
},
"cot_theta": {
"type": [
"number",
"null"
]
},
"cover_top": {
"type": "number"
},
"thickness": {
"type": "number"
},
"cover_bottom": {
"type": "number"
},
"layer_thicknesses": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
}
},
"description": "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 the bar centroid) and steel [tx, ta, bx, ba] kN/m.",
"additionalProperties": false
},
"thetaDeg": {
"type": "number",
"description": "Or: the direction as an angle in the plane from slab_survey's suggestedReference (default 0)."
},
"averaging": {
"type": "boolean",
"description": "Average nodal results over the plates meeting at each node (in the reinforcement frame). Off by default: averaging hides peaks."
},
"reference": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 3,
"minItems": 3,
"description": "Reinforcement x direction as a global vector in the plane of the plates."
},
"capacities": {
"type": "object",
"properties": {
"top": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"description": "[[angle_deg, moment capacity kNm/m], ...]"
},
"bottom": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"description": "[[angle_deg, moment capacity kNm/m], ...]"
}
},
"description": "Moment capacities typed directly, instead of bars.",
"additionalProperties": false
},
"centreOnly": {
"type": "boolean",
"description": "Assess element centres only."
},
"maxElements": {
"type": "integer",
"description": "Accepted (slab_assess arguments can be reused) and ignored."
},
"orientation": {
"type": "integer",
"description": "Orientation group index from slab_survey (default 0, the largest)."
}
},
"additionalProperties": false
}| any |
| source stages: stage names, or "all" (default). |
| elements | string | Element list as the plugin takes it, e.g. "1-20, 35, 40 to 44". |
| positions | array | Positions along the element: I-end, ¼, ½, ¾ span, J-end. Default all five. |
| elementIds | array | Beam element numbers. |
| stageLimits | object | source stages. The plugin's defaults: compression on (kc 0.6), tension none, steel full, tendons checked. |
| combinations | array | source combinations: the combinations to check, each a name or {name, category}. |
{
"type": "object",
"properties": {
"csv": {
"type": "boolean",
"default": true,
"description": "Return the plugin's SLS CSV (every state, one row per part) as a download link."
},
"unit": {
"enum": [
"MPa",
"kN/m2",
"kgf/cm2",
"ksi",
"psi"
],
"default": "MPa",
"description": "Stress unit of the results (internally kN/m²)."
},
"group": {
"type": "string",
"description": "A structure group; its beam elements are used."
},
"limits": {
"type": "object",
"properties": {
"fy": {
"type": "number",
"description": "Structural steel fy; default from the grade name (e.g. S355)."
},
"k1": {
"type": "number",
"default": 0.6
},
"k2": {
"type": "number",
"default": 0.45
},
"fck": {
"type": "number",
"description": "Concrete fck (used where the model holds none, or everywhere with fckForEveryConcrete)."
},
"fctm": {
"type": "number",
"description": "fctm; default from fck (EN 1992-1-1 Table 3.1)."
},
"steel": {
"enum": [
"normal",
"full"
],
"default": "normal",
"description": "Characteristic steel check: |σx| ≤ fy/γM,ser, or full (+ τ and von Mises, elementary shear, no torsion)."
},
"tension": {
"type": "object",
"properties": {
"frequent": {
"enum": [
"none",
"fctm",
"zero",
"user"
]
},
"characteristic": {
"enum": [
"none",
"fctm",
"zero",
"user"
]
},
"quasiPermanent": {
"enum": [
"none",
"fctm",
"zero",
"user"
]
}
},
"description": "Concrete tension rule per category: none (default) | fctm | zero (decompression) | user.",
"additionalProperties": false
},
"gammaMser": {
"type": "number",
"default": 1
},
"tensionUserLimit": {
"type": "object",
"properties": {
"frequent": {
"type": "number"
},
"characteristic": {
"type": "number"
},
"quasiPermanent": {
"type": "number"
}
},
"description": "MPa, for rule user.",
"additionalProperties": false
},
"fckForEveryConcrete": {
"type": "boolean",
"default": false
},
"compressionCharacteristic": {
"enum": [
"none",
"xd",
"project"
],
"default": "none",
"description": "σc ≤ k1·fck in characteristic combinations: XD/XF/XS exposure (EN 1992-2 §7.2(102)) or a project requirement."
},
"compressionQuasiPermanent": {
"enum": [
"k2",
"none"
],
"default": "k2",
"description": "σc ≤ k2·fck in quasi-permanent combinations (linear creep) — the plugin's default."
}
},
"description": "Combination checks. Nothing optional is on unless set here. Stresses in MPa.",
"additionalProperties": false
},
"source": {
"enum": [
"combinations",
"stages"
],
"default": "combinations"
},
"stages": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"const": "all"
}
],
"description": "source stages: stage names, or \"all\" (default)."
},
"elements": {
"type": "string",
"description": "Element list as the plugin takes it, e.g. \"1-20, 35, 40 to 44\"."
},
"positions": {
"type": "array",
"items": {
"enum": [
"I",
"1/4",
"2/4",
"3/4",
"J"
]
},
"description": "Positions along the element: I-end, ¼, ½, ¾ span, J-end. Default all five."
},
"elementIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Beam element numbers."
},
"stageLimits": {
"type": "object",
"properties": {
"kc": {
"type": "number"
},
"fpk": {
"type": "number"
},
"ageAt": {
"enum": [
"start",
"end"
],
"default": "start"
},
"fp01k": {
"type": "number"
},
"steel": {
"enum": [
"full",
"normal"
]
},
"cement": {
"enum": [
"R",
"N",
"S"
],
"default": "N"
},
"gammaM0": {
"type": "number",
"default": 1
},
"tendons": {
"type": "boolean"
},
"tension": {
"enum": [
"none",
"fctm",
"zero",
"user"
]
},
"compression": {
"enum": [
"on",
"none"
]
},
"testedFckEarly": {
"type": "number",
"description": "Tested fck for ages ≤ 3 d (EN 1992-1-1 §3.1.2(5)); without it those states are not evaluated."
},
"creepFlagFactor": {
"type": "number",
"default": 0.45
},
"tensionUserLimit": {
"type": "number"
}
},
"description": "source stages. The plugin's defaults: compression on (kc 0.6), tension none, steel full, tendons checked.",
"additionalProperties": false
},
"combinations": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"category": {
"enum": [
"characteristic",
"frequent",
"quasi-permanent",
"none"
]
}
},
"additionalProperties": false
}
]
},
"description": "source combinations: the combinations to check, each a name or {name, category}."
}
},
"additionalProperties": false
}| includeNodes |
| boolean |
| confirmPlanHash | string | planHash from the approved preview; the write is refused if the plan differs. |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"default": false,
"description": "Write to CIVIL NX. Only after the user approved the preview."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "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'}, {kind:'idRange', ranges:[{label, text}]}, {kind:'existingGroup', groups:[names]}."
},
"scope": {
"type": "object",
"description": "{kind:'all'} | {kind:'groups', groups:[names]} | {kind:'ids', text:'1-80'} | {kind:'selection', elements:[ids]}",
"additionalProperties": true
},
"naming": {
"type": "object",
"description": "template with tokens {INDEX}, {SLICE}, {SECTION}, {MATERIAL}, {TYPE}…; prefix, suffix, pad, start.",
"additionalProperties": true
},
"policy": {
"enum": [
"skip",
"overwrite",
"merge",
"rename"
],
"default": "skip",
"description": "What to do when a group name already exists."
},
"typeFilter": {
"type": "array",
"items": {
"type": "string"
},
"description": "Element types to keep (BEAM, TRUSS, PLATE, SOLID…); empty = all."
},
"includeNodes": {
"type": "boolean",
"default": true
},
"confirmPlanHash": {
"type": "string",
"description": "planHash from the approved preview; the write is refused if the plan differs."
}
},
"additionalProperties": false
}| result | any | sx σx combined; sxN/sxMy/sxMz its parts; tVz/tVy shear; vm von Mises; s1/s2 principal; tmax; tresca. |
| thermal | object | Temperature stresses instead of load results (EN 1991-1-5 §6.1.4). |
| elementId* | integer | The beam element. |
| positions | array | Positions along the element: I-end, ¼, ½, ¾ span, J-end. Default ["2/4"]. |
| depthLevels | integer | Levels of the through-depth table (vertex levels are added); 0 leaves it out. |
| sectionProperties | any | effective = CIVIL NX's own stresses (as the plugin's default); gross = the plugin's calculation on the section as modelled, difference stated. |
{
"type": "object",
"required": [
"elementId"
],
"properties": {
"csv": {
"type": "boolean",
"default": false,
"description": "Also return the plugin's CSV export of every profile (a download link)."
},
"unit": {
"enum": [
"MPa",
"kN/m2",
"kgf/cm2",
"ksi",
"psi"
],
"default": "MPa",
"description": "Stress unit of the results (internally kN/m²)."
},
"loads": {
"type": "array",
"items": {
"type": "string"
},
"description": "Load case / combination / envelope names as stress_element_loads lists them; with stage, that stage's results (e.g. Summation, Dead Load)."
},
"stage": {
"type": "string",
"description": "Construction stage: use its results (last step) instead of the final state."
},
"result": {
"enum": [
"sx",
"sxN",
"sxMy",
"sxMz",
"tVz",
"tVy",
"vm",
"s1",
"s2",
"tmax",
"tresca"
],
"default": "sx",
"description": "sx σx combined; sxN/sxMy/sxMz its parts; tVz/tVy shear; vm von Mises; s1/s2 principal; tmax; tresca."
},
"thermal": {
"type": "object",
"properties": {
"E": {
"type": "number",
"description": "E of the element's material, kN/m², if the model's is not to be used."
},
"load": {
"type": "string",
"description": "CIVIL NX static load case / combination for preset civil or restraint civil."
},
"alphas": {
"type": "array",
"items": {
"type": [
"number",
"null"
]
},
"description": "α per section part, 1/°C (null = from the model). Composite-General parts have none in the model and need it."
},
"points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"description": "preset user: [depth below the top m, ΔT °C] pairs, linear between, zero outside."
},
"preset": {
"enum": [
"heating",
"cooling",
"user",
"civil"
],
"default": "heating",
"description": "Type 3 heating / cooling (Table B.3, 100 mm surfacing — check the National Annex), user points, or CIVIL NX's own section/element temperature of thermal.load."
},
"restraint": {
"enum": [
"free",
"full",
"axial",
"rot",
"civil"
],
"default": "free",
"description": "free (statically determinate), full, axial only, rotation only, or CIVIL NX's beam forces of thermal.load."
},
"components": {
"type": "array",
"items": {
"enum": [
"tTot",
"tRes",
"teig",
"tUni",
"tLin"
]
},
"description": "Default all: tTot total, tRes restraint, teig self-equilibrating, tUni uniform (fully restrained), tLin linear (fully restrained)."
}
},
"description": "Temperature stresses instead of load results (EN 1991-1-5 §6.1.4).",
"additionalProperties": false
},
"elementId": {
"type": "integer",
"description": "The beam element."
},
"positions": {
"type": "array",
"items": {
"enum": [
"I",
"1/4",
"2/4",
"3/4",
"J"
]
},
"description": "Positions along the element: I-end, ¼, ½, ¾ span, J-end. Default [\"2/4\"]."
},
"depthLevels": {
"type": "integer",
"default": 10,
"maximum": 40,
"minimum": 0,
"description": "Levels of the through-depth table (vertex levels are added); 0 leaves it out."
},
"sectionProperties": {
"enum": [
"effective",
"gross"
],
"default": "effective",
"description": "effective = CIVIL NX's own stresses (as the plugin's default); gross = the plugin's calculation on the section as modelled, difference stated."
}
},
"additionalProperties": false
}