> For the complete documentation index, see [llms.txt](https://docs.openbrim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openbrim.org/templates/openbrimfea/geometry-fea/mesh-regions-and-supports-fea.md).

# Mesh Regions, Mesh Lines and Supports \[FEA]

A plate, a slab or a frame can be modelled in the FEA tab from its geometry, the way a geometry-first FE program works: draw the shape in the CAD view, give it a material, a thickness and an element size, support it, load it, analyse. The elements and nodes are generated from the drawing every time the model compiles, so supports and loads are assigned to geometry (a drawn line, an edge, a region), never to generated node numbers, and they follow a change of the drawing or of the element size.

Three sheets do this - Mesh Regions and Mesh Lines under **Geometry**, Supports under **Boundary Conditions** - with the CAD view and the regular load sheets:

| Step                                                              | Where                                                             | Object                                   |
| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------- |
| Draw a surface, with holes                                        | CAD view, on the region's level (Mesh Regions, Shape column menu) | FE mesh region (`FEMeshSurface`)         |
| Draw a line (beam, column)                                        | CAD view, on the line's level (Mesh Lines, Shape column menu)     | FE mesh line (`FEMeshLine`)              |
| Plane, material, thickness, section, element size                 | the same sheets                                                   |                                          |
| Support along drawn lines or points, or an edge, a hole, a region | Boundary Conditions > Supports                                    | FE support (`FESupport`)                 |
| Pressure on a region                                              | Loads > Static Loads > FE Surface Loads, Element column menu      | FE surface load on the region's FE group |
| Line load along a drawn path                                      | Loads > Static Loads > Global Line Load, Points column menu       | line load on the region's FE group       |
| Which elements a load case solves                                 | Load Cases, Structure Group                                       | FE group                                 |

## Drawing in the CAD view

The drawing is the geometry. Each region, line, drawn support and drawn load path names a CAD drawing and one **level** of it, and takes the shapes on that level:

* a **region**: the largest closed shape on its level (a polygon, a rectangle, a circle, a closed curve) is the outline, and the closed shapes wholly inside it are holes. A shape that crosses or touches the outline (shares a corner or an edge with it), and holes that overlap or touch one another, are left out, counted in the Shape column and described in the issues list: the mesher cannot cut them. Draw each opening as one closed shape clear of the outline. Holes are numbered H1, H2 ... in the order they are taken, so leaving one out renumbers the holes after it;
* a **line**: every polyline (or arc, or open curve) on its level is one path of the line; a polyline clicked back onto its own start keeps that last segment;
* a **drawn support**: its lines and polygon edges are supported along, its circles at their centres;
* a **drawn load path**: the polyline on its level.

Text, dimensions, leaders, section callouts, tables, revision clouds, images and other annotations on a level are not geometry: they are left out (the Shape column says how many, and how many shapes had too few points to take), so a level can carry its own notes.

**Drawing order counts:** a load follows the first polyline on its level, holes are numbered H1, H2 ... in the order they were drawn, and so are the paths of a mesh line. Bring to Front and Send to Back change that order, so using them on a level the FE rows draw from recompiles the model when you leave the CAD view.

Everything the CAD view offers works on these shapes: snaps, tracking, polar and ortho, typed coordinates and lengths, offset, trim, extend, fillet, join, mirror, array, stretch. References go by level, not by shape, so joining, exploding, trimming or redrawing a shape keeps it in the region as long as it stays on the level. Curves are taken as fine polygons (a circle as 100 segments).

**Draw in the CAD View** (Shape column menu) opens the CAD view on the row's drawing with its level current, so the shapes drawn next land on it. A row that names no drawing gets the drawing *FE\_Geometry* and a level named after it with *\_CAD* (made when they do not exist; a name another object already has gets a number, since references go by name). A new row on the sheet does not copy the Drawing and Level of the row above: two rows on one level would mesh the same shape twice. **New Region in the CAD View** (plan XY, elevation XZ, section YZ or sloped over plan) makes a row and opens the CAD view to draw it.

**When the mesh updates:** leaving the CAD view recompiles the model when a drawing the FE rows use has changed. While the CAD view is open, or docked beside the 3D view, the model does not recompile on every stroke (a recompile resets the CAD view's undo): use **Update Mesh from CAD** or the compile button. A change made with the CAD view closed (in a CAD sheet, or an undo) recompiles as soon as it is done when it changes what the FE rows draw from: a shape on their levels, a drawing or a level renamed or deleted, or a missing one restored. The analysis results go stale when the drawn geometry changes, as with any other model change.

**The plane:** a drawing is flat, so each row says where its level lies: on the **CAD** tab, **Plane** (XY plan, XZ elevation, YZ section, or sloped over plan), **Plane at** (Z for XY, Y for XZ, X for YZ) and, for a sloped plane, **Slope X** and **Slope Y** (z = at + slope X · x + slope Y · y). Drawing x and y are the plane's two axes: x and y in plan, x and z in an elevation, y and z in a section. A region inside an FE assembly lies in the assembly's local axes. One level can serve several rows at different planes (the same footprint as slabs at two levels).

**Which way a region faces:** the shells of a region drawn in CAD face the positive axis across its plane: +Z for plan and sloped planes, +Y for an elevation, +X for a section, whichever way round the outline was drawn. A shape drawn the other way is read backwards, and an outline whose first corners the mesher would read the wrong way starts at a later corner. Element local axes, a load in local z and the sign of the plate moments follow from this. A region with a **Mesh Direction** set takes its axes from that instead. (A region drawn by its own points faces the way its points run: see below.)

**A region drawn by points:** a region or line that has its own points (made before this workflow, in XML or by the agent API; an outline Surface, or points directly on the region) still meshes from them. **Move Shape into the CAD View** (Shape column menu; also what **Move ... Shape into the CAD View** on an FE assembly does for such a region) turns its outline and holes, or its line, into shapes on a new level, makes the row use them and opens the CAD view on them, in one undo step. Its outline is written in the order it will be read, so CAD point *k* is outline point *k*:

* when that reverses or restarts the outline, the supports that name its **Edges / Vertices** are renumbered in the same step so they stay on the same edges and corners, and the message says which;
* when the region faced the other way, it now faces the positive axis: the message says so, because a load in its local z and the signs of its plate moments reverse with it; it also says when its first edge (the one `CX` is measured along) changes, and when grid lines or corner Z overrides, which follow the first edge and the corners, need checking;
* when the region has holes and is on the local mesher, which meshed each hole a second time over it, the message says what it becomes: cut on the remote mesher when it shares no nodes, else meshed solid once (see Holes and the mesher). Either way its mesh, and the results, change.

It is refused, with the reason and nothing changed, when it would lose or change anything: a second outline, a point beside the outline, a hole with fewer than three points, a node region or a group inside the outline, an outline, hole, Line or point with inputs of its own (a Thickness, Material, FE group, Section, end release, pretension or tag set on it rather than on the row: the elements it makes take those over the row's, and a drawn shape holds none, so put them on the row first), a loop or point with a guard (whatever the guard says now: a drawn shape has none), a point whose X / Y / Z is a formula, a repeated point when a support names its edges or corners (the drawing drops it, renumbering them), or a hole the drawing would read differently (touching the outline or another hole). Change that first, or keep editing the points directly. A row whose geometry is a **Surface** or **Line** reference is not drawn in CAD (the drawing would replace it): clear that column first. A mesh line placed by an alignment or a coordinate system is not drawn in CAD either.

**A drawing that is gone:** a row whose drawing or level was deleted or renamed is not meshed (a load applies no load) and the issues list says so; it never falls back to the points it had before.

## Mesh Regions

Each row is one region: its geometry and how it is meshed.

**Shape (read only, cell menu):** the region in words, for example *6 points, 2 holes, XY at Z = 10 ft, net area 277.78 ft² (CAD level Slab\_CAD)*, or what is missing (nothing drawn yet, no closed shape, a level left out). The cell menu draws or edits the region in the CAD view, updates the mesh, adds a support on the region's boundary and a pressure on the region, and starts new regions. The pressure is Global Z on a plan or sloped region (vertical, as gravity acts; in an FE assembly too, which turns only about Z), and acts across the face of an elevation (XZ, Global Y) or a section (YZ, Global X). On an elevation or a section inside an FE assembly, whose axes may be turned, and on a region whose plane cannot be told, it is the shells' Local z, which points the way the region faces (see Which way a region faces).

**FE Group:** the group the generated shells join. Loads and load cases refer to the region through it, and the staged construction activates it. The load actions create one named after the region when it has none. A new row (typed or pasted) copies the row above it, except its FE group and its network: it starts in no group, so it is never loaded or staged by another region's group by accident, and in no network, so it shares nodes with the other unnumbered regions and lines it touches. A column written in the new row (or pasted) is kept as written.

**Material, Thickness:** handed to every generated shell.

**CAD tab:** Drawing, Level, Plane, Plane at, Slope X / Y (above).

**Mesh tab:** element size along and across the first edge (`CX`, `CY`); the mesher; the remote element size and algorithm; whether the outline vertices become grid lines (on for a region that stands alone, otherwise it has no grid to mesh on); whether the region shares nodes with the regions and lines it meets; and its network (empty: it shares nodes with the unnumbered meshes it touches; a number: with every mesh of the same number, and never with an unnumbered one). A region whose grid lines at vertices are off meshes only from a neighbour or its own grid lines, and alone it meshes nothing; a region or line that generates no elements is named in the issues list after the compile.

**Edge and vertex numbers:** the Supports sheet's Edges / Vertices still accept numbers: on the outline, edge *k* runs from point *k* to point *k* + 1 (1 to *n*, in the order of the outline's points); on hole 1 they are H1.1, H1.2 and so on. For a region drawn in CAD the order is the shape's own when it was drawn counter-clockwise looking against the axis it faces (above), and reversed otherwise; an outline whose first corners the mesher would read the wrong way starts at a later corner. They renumber when the shape is redrawn, so a support drawn in CAD is the better way for a drawn region.

### Holes and the mesher

The local grid mesher does not cut holes: it meshes a hole as a second surface over the first, and a curved outline or hole gives it a grid line at every one of its many vertices. A region with a hole or a curve should use the **remote** mesher (Mesh tab, or **Use the Remote Mesher** in the Shape menu), which pairs each hole with the outline it is in and makes an unstructured, mostly quadrilateral mesh.

The remote mesher meshes its regions apart from the local meshes: a region on it does not share nodes with the local mesh lines and regions it touches (a slab on it comes loose from the beam lines along its edges, joined only where nodes happen to coincide). So a region drawn in CAD with a hole is switched to the remote mesher only when it does not share nodes in meshing anyway: **Share Nodes with Neighbours** off (in an FE assembly too: the sheets' new rows set it off there, but a region made otherwise may share).

A region that does not share nodes (that setting off, or the remote mesher) is still joined to a mesh it meets wherever their nodes coincide, and only there. Where the two do not put nodes at the same points (different element sizes, the remote mesher's own spacing, a wall standing on a slab between its nodes, a beam line along a slab edge with another spacing) the seam is open there and the model more flexible than drawn. After the compile, the issues list names such a region, the mesh region or mesh line it meets, and the nodes left loose: a node of one lying on the other's shells or line elements (within a tenth of that element's size, so a curved seam counts) with no node of the other there. Give both the same element size there, or let the region share nodes. Its element size is then the smaller of `CX` and `CY` that is set, and its Shape column says so. Otherwise it stays on the mesher its Mesh tab sets. On the local mesher, which would mesh each hole a second time over the slab (twice the stiffness and the weight there), a region drawn in CAD is meshed solid once, its holes not cut, and the Shape column and the issues list say so; a support on its holes then finds none. Choosing the remote mesher is yours (it shares nodes only among the meshes on it in one network).

## Mesh Lines

Each row is a line meshed into frame elements: its geometry (CAD tab; Shape column menu, **Draw in the CAD View**), FE group, section, beta angle, element size and end releases. Each polyline on its level is one path, meshed with the same section and end releases. A line that lies along a region's edge shares nodes with it; it is concentric with the slab (no offset), so it adds the beam's own stiffness, not a composite section.

## Supports

Each row restrains the nodes on a piece of geometry.

**On:** a mesh region, a mesh line or an FE node (the cell menu lists them, or picks a node in 3D). A mesh line placed by an alignment, a coordinate system or a referenced Line is refused: support its FE nodes instead.

**Where:** *Drawn in CAD* (along the lines and polygon edges drawn on the support's level, and at the centres of its circles, mapped onto the target's plane); *All nodes* of the target; its *Boundary* (outline and holes; the ends of every path of a line); its *Outline*; its *Holes*; listed *Edges*; or listed *Vertices*.

**Drawing / Level (Drawn in CAD):** where the support is drawn; the cell menu opens the CAD view on its level (made when it has none, in the target's drawing). The shapes are mapped onto the target's plane (its CAD plane, or the plane of its own points), and a node is taken when it is within the tolerance of a drawn line or polygon edge or of a circle's centre (in the plane for a region, in 3D for a line). A level can mix both: lines and edges share the support's spring by tributary length, and each circle takes its own.

**Edges / Vertices:** the numbers for Edges or Vertices, for example `1,3`, `2-4`, `H1.2`.

**Tx ... Rz:** Fixed or Free, in the axes of the generated nodes: the mesh's coordinate system when it has one; else, for a mesh placed by an alignment, the alignment's axes at each node's station (along and across the tangent there); else an FE assembly's local axes for a region inside one; else global axes. The cell menu sets the six at once: pinned, fixed, vertical only, free. **Support the Boundary** and **Support the Ends** pin (Tx Ty Tz fixed), which also holds the edge in its plane; for temperature or shrinkage loads, or a sloped region, free the in-plane directions you do not mean to hold.

**Springs tab:** a Free direction may take a spring. Along lines and edges it is the support's **total** stiffness, shared among its nodes by tributary length, so the total does not change with the element size. At points (circles drawn for a support, chosen vertices, the ends of a line, an FE node) it is each point's own stiffness, shared among the nodes at that point (normally one). Springs on *All nodes* of a region are not applied: use an Area Spring Region on the region's FE group. A Fixed direction always wins over a spring on the same node, two springs on one node add, and a node that already holds a spring curve keeps it.

**Tolerance:** how far from the drawn or chosen geometry a node may be and still be taken: in the region's plane for a mesh region (a node the mesher moves off the plane, by an elevation field or Z overrides, is still taken), in 3D for a mesh line. The first support row starts at half an inch in the model's units; later rows copy the row above. Keep it below the element size: one that reaches the next row of nodes takes that row too, so the support restrains a strip (a Fixed edge then acts close to clamped), and the Status and the issues list say so.

**Status (read only):** after each compile, how many nodes the support restrained, what it took them along and in which directions, or why it restrained none. A drawn segment, edge or point that took no node, or one whose nodes do not reach along all of it, is named there and in the issues list; the springs are then shared among the nodes it did take.

{% hint style="info" %}
A support is applied when the mesh is made: node regions inside the compiled copy of the mesh pick the mesh's nodes near the geometry, and each is then checked against the tolerance exactly. The model you edit is never changed and stores no generated node names.
{% endhint %}

## Loads

**Pressure on a region:** on FE Surface Loads, the Element column menu lists the mesh regions; choosing one writes the region's FE group (making it if needed). A uniform force in global Z on a sloped region is applied over its true area.

**Line load along a drawn path:** on Global Line Load, the Points column menu has **Draw the Path in the CAD View, on** each region: the load loads the region's FE group and follows the polyline drawn on its own level, mapped onto the region's plane, from then on (the Points cell says *drawn: level ...*; Edit Points and Select Polyline are not offered while it does). A closed shape is a closed path; one path per load. **Stop Following the CAD Drawing** writes the path it follows into the load's own points and returns the load to them. Only regions whose points are global points are offered (a line load's points are global): not a region placed by an FE assembly or an alignment, or moved or turned.

**Load case group:** a load case solves the elements of its Structure Group. To solve several regions in one case, make a group whose **Parent Group** column lists their groups: a group takes in the elements of the groups named there.

## Worked examples

The project *FE Geometry Workflow Examples* holds them, drawn in the CAD drawing *FE\_Geometry* (one level per region and beam; E3's edge load follows a path drawn on its own level). E = 3,600 ksi, ν = 0.2; self-weight off; loads downward.

| Example | Model                                                                                               | Hand check                                                                                                 | Result                   |
| ------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------ |
| E1      | 160 × 160 in plate, 8 in, simply supported on its outline, 0.01 ksi                                 | reaction q a² = 256 kip; centre deflection 0.00406 q a⁴ / D = 0.1663 in                                    | 256.00 kip; 0.16636 in   |
| E1b     | the same plate with a central 40 × 40 in hole, outline supported                                    | q (160² − 40²) = 240 kip                                                                                   | 240.00 kip               |
| E2      | L-shaped slab at z = 10 ft with two 40 × 40 in holes, and a 1:10 ramp with one hole, 0.005 ksi each | slab p × 40,000 in² = 200 kip; ramp p × 27,200 in² × √1.01 = 136.68 kip                                    | 200.000 and 136.678 kip  |
| E3      | 120 × 60 in cantilever plate fixed on edge 4, 0.1 kip/in along free edge 2 (a drawn path)           | reaction 6 kip; reaction moment about Y −6 × 120 = −720 kip-in (right-hand rule, load downward at x = 120) | 6.00 kip; −720.00 kip-in |
| E4      | 240 × 120 in slab on two mesh lines along its long edges, beams pinned at their ends, 0.002 ksi     | total 57.6 kip, 14.4 kip at each support by symmetry                                                       | 4 × 14.40 kip            |

The totals of E1b, E2 and E4 equal the applied load for any stable set of supports, so they check the load, not where the supports are; E1's deflection, E3's moment and E4's equal split check the supports. E1's deflection is the thin-plate (Kirchhoff) value; a thick-plate (Mindlin) formulation gives about 1 % more at this span to thickness ratio (20).

## Verification

* Read the Supports sheet's **Status** after a compile: for a drawn line or chosen edges along one open chain the node count is its length over the element size plus one; for a whole closed loop it is the perimeter over the element size. A count of 0 is always a mistake.
* Read the Mesh Regions **Shape** column: the plane and the net area should be what you drew, and any shape left out of a level is named there.
* Check the reaction total of each load case against the load (pressure × area, line load × length).
* For an elevated or sloped region, check the generated nodes' Z in the Generated view of the Nodes sheet.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.openbrim.org/templates/openbrimfea/geometry-fea/mesh-regions-and-supports-fea.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
