Derive structural model
derive_structural_modelDerives a structural analysis model from the elements named by guids or a set: every IfcColumn, IfcBeam and IfcMember becomes IfcStructuralCurveMember on its own straight axis, every IfcSlab and IfcWall IfcStructuralSurfaceMember on its mid-plane with its thickness and its openings as holes, all in one new IfcStructuralAnalysisModel at the building and coupled to its element. The named elements stay as they are (n_changed 0). A node (tolerance_m) sits on the axis of the column, else the beam, else the member; the others join with an eccentricity, never moved onto it. Nodes never chain beyond tolerance_m: ends kept apart within it stand in warnings. A bar is split where another axis meets it inside. A bar end at a surface is a point of it; a beam or a wall edge lying against a slab face (bodies in contact) is a line in the slab mid-plane, the offset an eccentricity. Curved, unread or non-flat bodies are rejected with their reason. With model the same set brings that model up to date in place. No supports, no loads: the model is not ready for analysis. New revision, effect report. A call that succeeds is not a job that's done. The report's structural_derived: members, surfaces with net area and holes, nodes with the largest snap distance, connections with their offset in m, each assumption with its rule and measured deviation. Double-check before handover: the nodes and lines against the joints you expect - a tolerance too small splits one joint into two nodes, one too large joins what is apart.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "derive_structural_model"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | A set id from find_elements or get_selection: writes exactly the elements seen there, nothing that matches later. An element changed since reading is rejected alone; the others are written | |
| guid | No | One element (GlobalId) | |
| note | No | Your note, stored with the new revision | |
| guids | No | These elements (GlobalIds) | |
| model | No | An IfcStructuralAnalysisModel to bring up to date: its members and nodes keep their GlobalIds and psets, orphaned ones are named, never deleted; a node moved off its Lage stays held | |
| dry_run | No | Preview: the planned effect and its checks, nothing written | |
| request_id | No | Your id for this call: a repeat answers the first result and writes nothing | |
| tolerance_m | No | Snap distance in m, required: axis ends and closest points of two axes within it are one node; never assumed | |
| expect_count | No | With set: how many elements the set holds - guards against a mixed-up set id | |
| surface_type | No | The surface member type of every slab and wall; left out SHELL (assumption) | |
| opening_min_area_m2 | No | Required once IfcSlab or IfcWall is named: openings from this area in m2 become holes, smaller ones are dropped and counted |